lo tanto, tengo aplicaciones web con web.configs, así:¿Determina si la página actual requiere autorización?
<authorization>
<deny users="?"/>
</authorization>
...
<location path="SomeUnsecuredPage.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
En otras palabras, la mayoría de las páginas requieren autenticación y autorización, pero algunos no lo hacen.
Luego tengo un IHttpModule que será utilizado por todas las diferentes aplicaciones. Todo lo que quiero hacer es verificar si la solicitud actual está "segura". Si la página no requiere autorización, no quiero que mi IHttpModule haga nada. Estoy utilizando FormsAuthentication y supongo que FormsAuthentication ya tiene toda esta información almacenada en algún lugar, ¿no? Además, dado que esta comprobación se ejecutará constantemente, debe ser muy rápida.
Actualmente estoy suscrito a HttpApplication.AuthorizeRequest, pero sorprendentemente este evento se dispara incluso para los recursos que permiten el acceso anónimo.
¿Alguna idea? ¡Gracias por leer!
+1 para crear una instancia de IPrincipal singleton. Pieza de código muy útil. Sin embargo, no es necesario crear una instancia de 'UrlAuthorizationModule'. Solo usar el método estático 'CheckUrlAccessForPrincipal' es suficiente. –