【发布时间】:2009-02-24 23:08:20
【问题描述】:
场景
我正在使用自定义 IPrincipal 和 IIdentity 进行 asp.net 授权。我在PostAuthenticateRequest 事件期间使用IHttpModule 设置了Principal 和Identity。
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 元素。到目前为止都没有工作。
【问题讨论】:
标签: asp.net security web-config authorization