9.5.4 Seguridad con Action Filters
Otra forma de manejar la seguridad es mediante Action Filters. Los action filters como ya lo vimos en el tema 5.5.1 Agregando una excepción a todos nuestros servicios .Net cuenta con Action Filters, los cuales se ejecutan antes de cada servicio, aquí es donde validamos que el usuario tenga permiso para realizar la acción.
El filtro de tipo Acción (IActionFilter) cuenta con los siguientes métodos
OnActionExecuting: El código dentro de esta función se ejecuta antes de cada servicio.
OnActionExecuted: El código dentro de esta función se ejecuta después de cada servicio. Más adelante utilizare este método para guardar el historial de que usuario ha agregado o modificado registros.

Vamos a agregar una clase BaseController, la cual contendrá las propiedades y métodos comunes a todos los controllers. En esta clase vamos a agregar un objeto de nuestra clase PermisoDTO para identificar el nombre de la tabla que deseamos validar.
Agregamos nuestra clase BaseController que hereda de la clase Controller, en la carpeta Controllers
2. Cambiamos nuestro controller ProductosController, para que herede de nuestra clase creada y agregamos los datos de nuestro objeto permisoDTO, en nuestro constructor agregamos nuestro constructor de la clase base.
3. En nuestra carpeta de Filters agregamos una nueva clase PermisoFilter que hereda de la clase IActionFilter.
4. En esta clase vamos a validar el permiso
Si deseamos agregar esta validación a nuestros servicios agregamos nuestra clase PermisoFilter como atributo a nuestros Controller
Puedes agregar el action filter también para solo un método.
Puedes agregar un breakpoint en el método OnActionExecuting para comprobar que antes de cada servicio se manda llamar el código de este método y comprobar que se valida correctamente los permisos.
Puedes ver la documentación oficial aquí
Last updated
Was this helpful?