asp.net授权:位置和IPrincipal.IsInRole
脚本
我正在使用Custom IPrincipal
和IIdentity
来执行asp.net授权。 我使用IHttpModule
在PostAuthenticateRequest
事件期间设置了Principal
和Identity
。
web.config大致如下所示:
<system.web>
<authorization>
<allow verbs="GET,POST" roles="domaingroup"/>
<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
方法来检查domaingroup
但不会再次调用以检查admin
角色。 这是什么造成的? 我的location
语法不正确还是存在更深层次的问题?
笔记
我最初认为admin目录中的web.config覆盖了根目录中的web.config,但我试图将其彻底删除,并将它用于location
元素。 迄今为止都没有工作。
不要在<location>元素的路径开始处使用波浪号(〜),因为它们在那里没有被解释。 在你的例子中,path =“admin / user_search.aspx”应该是正确的。
链接地址: http://www.djcxy.com/p/90149.html上一篇: asp.net Authorization: location and IPrincipal.IsInRole
下一篇: enum to string in modern C++11 / C++14 / C++17 and future C++20