Después de examinar la sección MVC en CodePlex noté que el atributo [Authorize] en MVC devuelve un HttpUnauthorizedResult() cuando la autorización falla (codeplex AuthorizeAttribute class).MVC Authorize Attribute + HttpUnauthorizedResult + FormsAuthentication
En la fuente de HttpUnauthorizedResult() de CodePlex es el código (no puedo ingresar otra URL porque mi representante no es lo suficientemente alto, pero reemplace los números en la URL anterior con 22929 # 266476):
// 401 is the HTTP status code for unauthorized access - setting this
// will cause the active authentication module to execute its default
// unauthorized handler
context.HttpContext.Response.StatusCode = 401;
En particular, el comentario describe el controlador desautorizado predeterminado del módulo de autenticación.
No puedo encontrar ninguna información sobre este controlador no autorizado predeterminado. En particular, no estoy usando FormsAuthentication y cuando la autorización falla recibo una fea página de error IIS 401.
¿Alguien sabe acerca de este manejador no autorizado predeterminado y, en particular, cómo FormsAuthentication se engancha para anularlo?
Estoy escribiendo una aplicación muy simple para mi equipo de fútbol que confirma o niega si pueden jugar un partido en particular. Si habilito FormsAuthentication en el web.config, el redireccionamiento funciona, pero no estoy usando FormsAuthentication y me gustaría saber si hay una solución.
¿Qué tipo de autenticación estás usando? – Zote
¿Quiere autorizar? ¿Cuál es el resultado final que buscas con respecto a la autenticación? –
Escribí mi propio pequeño módulo de autenticación que asigna una identidad y funciones. El [Autorizar] necesita verificar si el usuario puede visitar la página para confirmar que puede jugar en una partida en particular. Si no se les permite jugar, en función de un rol, en lugar de dar un error 401 que es bastante inútil, quiero darles más información utilizable sobre por qué no pueden jugar. Anular este 401 parece ser la forma lógica de hacerlo, pero me sorprende la poca documentación que hay sobre este controlador no autorizado predeterminado – Anthony