Ho sofferto un paio di giorni con la gestione degli errori in MVC. Non ho ancora capito bene. (Ho anche letto la maggior parte delle domande qui a SO e su Google fino a quando le mie dita sanguinare)Gestione degli errori in MVC
Quello che voglio fare:
- utilizzare lo standard
[Authorize]
attributo - reindirizzare tutti gli errori a mio errore controller (anche non autorizzato)
- Avere una azione per errore HTTP nel mio error controller.
Quello che non voglio fare:
- Mettere il
[ErrorHandler]
su tutti i miei controllori (può essere utilizzato sul mio regolatore di base)? - Utilizzare un attributo Autorizza personalizzato.
In realtà, potrei fare qualsiasi cosa necessaria (inclusa la lista NOT) fino a quando ho # 1-3 funzionante.
Quello che ho provato:
- Utilizzando
Application_Error
- Utilizzando
Controller.HandleUnknownAction
- Utilizzando
Controller.OnException
- Utilizzando
[ErrorHandler]
sul mio controller - Accensione/spegnimento
CustomErrors
nel web.config
Indovinate ho bisogno di una combinazione di quelli o forse qualcos'altro?
provato. Non viene chiamato per il 401. Non ho idea del perché. – jgauffin
Non ho provato quello per un 401, ma secondo questa risposta (http://stackoverflow.com/questions/1679881/asp-net-mvc-user-friendly-401-error) dovrebbe lanciare un 'HttpException' come bene. –
Ah, potrebbe essere necessario controllare 'Context.Response.StatusCode == 401' in 'Application_EndRequest()' e quindi lanciare 'HttpException (401," Non sei autorizzato ")' da solo. –