Páginas

30 de junio de 2015

¿Dónde se añaden los filtros globales en MVC 6 / ASP.NET 5?

ASP.NET MVCDesde la versión 3 de ASP.NET MVC, los filtros globales nos han solucionado con facilidad la anteriormente ardua labor de definir filtros en todos los controladores y acciones de nuestra aplicación sin tener que introducirlos uno a uno o crear controladores base.

Por convención, los registrábamos en una clase llamada FilterConfig, habitualmente ubicada en la carpeta /App_Start del proyecto, y cuya pinta era más o menos la siguiente:

Filtro global en MVC 5 y anteriores

Este código era llamado durante la inicialización de la aplicación desde el evento Application_Start() del archivo Global.asax:

Evento Application_Start()


Como sabemos, en MVC 6/ASP.NET 5 el Global.asax ha desaparecido para no volver, y, si profundizamos un poco, veremos que tampoco existe el tipo GlobalFilterCollection, ni la clase estática FilterConfig que antes daban soporte a esta característica.

¿Y a dónde ha ido a parar todo esto en el nuevo MVC 6? Pues, como era de esperar, al tratarse de algo que se realiza durante el arranque, su destino ha sido la clase Startup.

El método ConfigureServices() de esta clase es el punto desde el que se añaden los distintos servicios y componentes usados por la aplicación al sistema de resolución de dependencias de ASP.NET 5, pero, además, al tratarse de un punto muy inicial en la ejecución de la aplicación, lo usaremos también para establecer las configuraciones básicas de algunos componentes, como el framework MVC.

La forma de hacerlo es muy sencilla. En la siguiente porción de código se muestra cómo se añaden los servicios de MVC, y cómo seguidamente añadimos a la colección de filtros globales un filtro RequireHttps para obligar a que el acceso a nuestros controladores se realice siempre sobre el protocolo seguro HTTPS:

Añadiendo filtros globales en MVC 6

Ese método ConfigureMvc() que veis en el código anterior en recibe como parámetro una instancia de la clase MvcOptions, en cuyo interior encontraremos propiedades en las que podemos configurar muchos aspectos de MVC, como los binders, motores de vistas, filtros, proveedores de metadatos, etc. Recordad que en versiones anteriores del framework estas configuraciones se realizaban a través de clases estáticas globales, por lo que ahora queda todo mucho más ordenado y accesible :)

Publicado en Variable not found.


from Variable not found http://www.variablenotfound.com/2015/06/donde-se-anaden-los-filtros-globales-en.html
via IFTTT