Глобальные фильтры по площади в MVC 3

Поскольку он не поддерживается изначально, каков рекомендуемый способ реализации глобальных фильтров для отдельных областей?


person Richard Szalay    schedule 18.04.2011    source источник
comment
Ставить фильтр на каждый контроллер в этой области? :) А если серьезно, вы имеете в виду ActionFilters?   -  person Sergi Papaseit    schedule 18.04.2011
comment
Да, но в MVC 3 ActionFilters являются конкретной реализацией более широкого IFilter   -  person Richard Szalay    schedule 18.04.2011


Ответы (2)


Вы можете использовать собственный IFilterProvider.

person Darin Dimitrov    schedule 18.04.2011
comment
Это должно сработать! Хорошая мысль - person Richard Szalay; 18.04.2011

Причина, по которой он не поддерживается изначально, заключается в том, что мы хотим отговорить разработчиков от этого. Области не связаны с контроллерами; они связаны с маршрутами. Мы хотели отговорить разработчиков от попыток применить фильтры авторизации или другие фильтры, чувствительные к безопасности, к областям, поскольку их можно обойти.

См. Как можем ли мы установить авторизацию для всей области в ASP.NET MVC? для получения дополнительной информации.

person Levi    schedule 20.04.2011
comment
Для обновления MVC 4 см. blogs.msdn.com/b/rickandy/archive/2012/03/23/ - person RickAndMSFT; 24.03.2012
comment
Области не связаны с контроллерами - забавно, что я вижу папку контроллеров в каждой области. Контроллеры всегда связаны с областью: либо с корневой областью, либо с настраиваемой областью. Так что я не согласен. Типичным примером областей является создание области администратора - угадайте, какой фильтр вы хотите применить глобально только к этой области. - person Quango; 24.01.2013
comment
@Quango Ваше предположение неверно. См. Также мой ответ на stackoverflow.com/questions/2319157/, что демонстрирует, что контроллеры не принадлежат областям. - person Levi; 25.01.2013
comment
Спасибо за объяснение: теперь я лучше понимаю, что вы имеете в виду, и снимаю свой предыдущий комментарий. Похоже, что фабрика контроллеров слишком помогает в согласовании вещей. - person Quango; 25.01.2013