6

Dado que no parece ser compatible de forma nativa, ¿cuál es la forma recomendada de implementar filtros globales por área?Filtros de área global en MVC 3

+0

¿Poniendo el filtro en cada controlador de esa área? :) Pero en serio, ¿te refieres a 'ActionFilters'? –

+0

Sí, pero a partir de MVC 3 'ActionFilters' son una implementación específica del' IFilter' más amplio –

Respuesta

2

Puede usar un IFilterProvider personalizado.

+0

¡Eso debería hacerlo! Buen pensamiento –

9

La razón por la que no es compatible de forma nativa es porque queremos desalentar a los desarrolladores de hacerlo. Las áreas no están asociadas a los controladores; están asociados con las rutas. Queríamos desalentar a los desarrolladores de intentar aplicar la autorización u otros filtros sensibles a la seguridad a las áreas, ya que se pueden omitir.

Consulte How can we set authorization for a whole area in ASP.NET MVC? para obtener más información.

+1

Para una actualización de MVC 4, consulte http://blogs.msdn.com/b/rickandy/archive/2012/03/23/securing-your-asp-net-mvc-4-app-and-the- new-allowanonymous-attribute.aspx – RickAndMSFT

+3

_ "Las áreas no están asociadas a los controladores" _ - es curioso que pueda ver una carpeta de controladores en cada área. Los controladores ** están ** asociados a un área: el área "raíz" o un área personalizada. Entonces no estoy de acuerdo. Un ejemplo común de áreas es crear un área de "Administrador": adivine qué filtro desea aplicar globalmente a esa área. – Quango

+1

@Quango Su suposición es incorrecta. Ver también mi respuesta a http://stackoverflow.com/questions/2319157/how-can-we-set-authorization-for-a-whole-area-in-asp-net-mvc/2320419#2320419, que demuestra que los controladores no pertenecen a las áreas. – Levi

Cuestiones relacionadas