Сценарий
Я использую Custom 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
или есть более глубокая проблема?
Примечания
Сначала я подумал, что web.config в каталоге администратора переопределяет web.config в корневом каталоге, но я попытался полностью удалить его, а также использовать его для элемента location
. Ни то, ни другое пока не помогло.