Итак, у меня есть веб-приложения с web.configs, вот так:
<authorization>
<deny users="?"/>
</authorization>
...
<location path="SomeUnsecuredPage.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
Другими словами, большинство страниц требуют аутентификации и авторизации, а некоторые - нет.
Тогда у меня есть IHttpModule, который будет использоваться всеми различными приложениями. Все, что я хочу сделать, это проверить, является ли текущий запрос "защищенным" вообще. Если страница не требует авторизации, я не хочу, чтобы мой IHttpModule вообще что-то делал. Я использую FormsAuthentication, и я предполагаю, что FormsAuthentication уже куда-то кэширует всю эту информацию, не так ли? Кроме того, поскольку эта проверка будет выполняться постоянно, она должна быть очень быстрой.
В настоящее время я подписываюсь на HttpApplication.AuthorizeRequest, но неожиданно это событие запускается даже для ресурсов, которые разрешают анонимный доступ.
Есть идеи? Спасибо за чтение!