设想
我正在使用自定义IPrincipal
并IIdentity
进行 asp.net 授权。我在Principal
活动期间使用.Identity
PostAuthenticateRequest
IHttpModule
web.config 大致如下所示:
<system.web>
<authorization>
<allow verbs="GET,POST" roles="domain\group"/>
<deny verbs="*" users="*"/>
</authorization>
</system.web>
<location path="~/admin/user_search.aspx">
<system.web>
<authorization>
<allow verbs="GET,POST" roles="admin"/>
<deny verbs="*" users="*"/>
</authorization>
</system.web>
</location>
问题
发出请求时,该IPrincipal.IsInRole
方法会被调用一次以进行检查domain\group
,但不会再次被调用以检查admin
角色。这是什么原因造成的?我的location
语法不正确还是有更深层次的问题?
笔记
我最初认为 admin 目录中的 web.config 覆盖了根目录中的 web.config,但我尝试完全删除它并将其用于location
元素。到目前为止,两者都没有工作。