Un Action Filter o filtro de acción es un atributo que puede asociarse a una acción de un controlador (o al controlador en su totalidad), modificando la forma en la que la acción se ejecuta. El Framework ASP.NET MVC proporciona unos cuantos, entre ellos:
Nombre | Descripción | |
Authorize | Restringe una acción para los roles o usuarios especificados. | |
HandleError | Permite especificar una vista que se mostrará en caso de excepción no controlada. | |
OutputCache | Almacena en caché la salida de un controlador | |
ValidateAntiForgeryToken | Ayuda a evitar peticiones de falsificación de petición (pishing) | |
ValidateInput | Desactiva las validaciones de petición. No es aconsejable hacer uso de este filtro salvo en ocasiones muy concretas, ya que pone en peligro la seguridad de la aplicación. |
Además de los existentes, es posible crear filtros personalizados para fines definidos por el negocio (como por ejemplo, un sistema de autenticación personalizado).
Tal y como vimos brevemente en el artículo anterior con [HttpGet] y [HttpPost], las acciones pueden «condimentarse» con atributos que afectan a su funcionalidad. Los filtros se añaden a modo de atributo a las acciones, haciendo que su comportamiento varíe. Veamos un par de ejemplos.