He luchado un par de días con el manejo de errores en MVC. Todavía no lo tengo bien. (También he leído la mayoría de las preguntas aquí en SO y en Google hasta que mis dedos sangraron)Error al manejar en MVC
Lo que quiero hacer:
- uso del estándar
[Authorize]
atributo - Redirección de todos los errores de mi error Controlador (incluido el no autorizado)
- Tiene una acción por error HTTP en mi controlador de errores.
Lo que no quiero hacer:
- Coloque el
[ErrorHandler]
en todos mis controladores (que puede ser usado en mi controlador de base)? - Utilice un atributo Autorizar personalizado.
En realidad, podría hacer cualquier cosa que sea necesaria (incluida la lista NOT) mientras tenga el # 1-3 en funcionamiento.
Lo que he intentado:
- Usando
Application_Error
- Usando
Controller.HandleUnknownAction
- Usando
Controller.OnException
- Usando
[ErrorHandler]
en mis controladores - Encendido/apagado de
CustomErrors
en web.config
Supongo que necesito una combinación de esos o tal vez algo más?
intentado. No se llama a 401. No tengo idea de por qué. – jgauffin
No lo he intentado con un 401, pero de acuerdo con esta respuesta (http://stackoverflow.com/questions/1679881/asp-net-mvc-user-friendly-401-error) debería arrojar una 'HttpException' como bien. –
Ah, podría ser que necesites comprobar 'Context.Response.StatusCode == 401' en tu' Application_EndRequest() 'y luego lanzar' HttpException (401, "No estás autorizado") 'por ti mismo. –