В ASP.NET MVC 3 как я могу применить IAuthorizationFilter ко всем контроллерам в определенной области? - PullRequest
0 голосов
/ 29 июля 2011

Как я могу применить IAuthorizationFilter ко всем контроллерам в определенной области?

Внутри метода OnAuthorization я пытался получить доступ к области через аргумент filterContext, но не смог.

Существует ли встроенный способ установки фильтра авторизации для всех контроллеров в области?Если нет, то как я могу проверить область внутри метода OnAuthorization?

1 Ответ

0 голосов
/ 12 мая 2012

Библиотека FluentFilters позволяет применять фильтры к определенной области:

public class MvcApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        [...]
        FilterProviders.Providers.Add(FluentFiltersBuider.Filters);
        RegisterGlobalFilters(GlobalFilters.Filters, FluentFiltersBuider.Filters);
        [...]
    }


    public static void RegisterGlobalFilters(GlobalFilterCollection filters,
                                             FluentFilterCollection fluentFilters)
    {
        fluentFilters.Add<AuthorizeAttribute>(
            c => c.Require(new AreaFilterCriteria("Admin")));
    }
}

Библиотека получает имя области следующим образом:

filterContext.RouteData.DataTokens["area"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...