|
Il presente articolo è stato tradotto manualmente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale.
|
Traduzione
Originale
|
Applicazione di filtri in ASP.NET MVC
Filtri di autorizzazione. Implementano IAuthorizationFilter e consentono di prendere decisioni relative alla sicurezza riguardanti l'esecuzione o meno di un metodo di azione, ad esempio l'autenticazione o la convalida delle proprietà della richiesta. La classe AuthorizeAttribute e la classe RequireHttpsAttribute sono esempi di filtri di autorizzazione. I filtri di autorizzazione vengono eseguiti prima di qualsiasi altro filtro. Filtri azioni. Implementano IActionFilter e consentono di eseguire il wrapping dell'esecuzione del metodo di azione. L'interfaccia IActionFilter dichiara due metodi: OnActionExecuting e OnActionExecuted. OnActionExecuting viene eseguito prima del metodo di azione. OnActionExecuted viene eseguito dopo il metodo di azione e può eseguire ulteriori operazioni di elaborazione, ad esempio può fornire dati aggiuntivi al metodo di azione, controllare il valore restituito o annullare l'esecuzione del metodo di azione. Filtri dei risultati. Implementano IResultFilter e consentono di eseguire il wrapping dell'esecuzione dell'oggetto ActionResult. IResultFilter dichiara due metodi: OnResultExecuting e OnResultExecuted. OnResultExecuting viene eseguito prima dell'oggetto ActionResult. OnResultExecuted viene eseguito dopo l'esecuzione del risultato e può eseguire ulteriori operazioni di elaborazione del risultato, ad esempio può modificare la risposta HTTP. La classe OutputCacheAttribute è un esempio di filtro del risultato. Filtri eccezioni. Implementano IExceptionFilter e vengono eseguiti se viene generata un'eccezione non gestita durante l'esecuzione della pipeline ASP.NET MVC. I filtri eccezioni possono essere utilizzati per attività quali la registrazione o la visualizzazione di una pagina di errore. La classe HandleErrorAttribute è un esempio di filtro eccezioni.
AuthorizeAttribute . Limita l'accesso mediante autenticazione e, facoltativamente, mediante autorizzazione. HandleErrorAttribute . Specifica come gestire un'eccezione generata da un metodo di azione.
Nota:Questo filtro rileva le eccezioni solo se l'elemento customErrors è abilitato nel file Web.config. OutputCacheAttribute . Fornisce la cache di output. RequireHttpsAttribute . Forza il reinvio delle richieste HTTP non sicure tramite HTTPS.
Eseguire l'override di uno o più metodi On<Filter> del controller. Creare una classe Attribute che derivi da ActionFilterAttribute e applicare l'attributo a un controller o a un metodo di azione. Registrare un filtro con il provider di filtri, ad esempio la classe FilterProviders. Registrare un filtro globale mediante la classe GlobalFilterCollection.
Nota: |
|---|
Filters per i filtri globali. FilterAttributeFilterProvider per gli attributi di filtro. ControllerInstanceFilterProvider per le istanze del controller.
Filtri di autorizzazione Filtri azioni Filtri di risposta Filtri eccezioni
Nota: |
|---|
OnActionExecuting | |||
OnActionExecuted | |||
OnResultExecuting | |||
OnResultExecuted |
OnActionExecuting | |||
OnActionExecuting | |||
OnActionExecuting | |||
OnActionExecuted | |||
OnActionExecuted | |||
OnActionExecuted | |||
OnResultExecuting | |||
OnResultExecuting | |||
OnResultExecuting | |||
OnResultExecuted | |||
OnResultExecuted | |||
OnResultExecuted |
if (filterContext.RouteData.Values.ContainsValue("Cancel")) { filterContext.Result = new RedirectResult("~/Home/Index"); Trace.WriteLine(" Redirecting from Simple filter to /Home/Index"); }