Использование ASP.NET MVC IAuthorizationFilter

В ASP.NET MVC IAuthorizationFilter будет выполняться перед любыми другими фильтрами и методами действий. Так уместно ли реализовать IAuthorizationFilter для некоторых сценариев, когда некоторая логика проверки и анализа входящего HttpRequest должна быть выполнена до запуска любой другой логики? Или IAuthorizationFilter следует использовать только для логики, связанной с авторизацией, тогда какие другие способы я должен использовать для этого?


person cateyes    schedule 02.05.2015    source источник


Ответы (2)


Не рекомендуется использовать IAuthorizationFilter для чего-либо, кроме авторизации. Вы можете просто создать глобальный фильтр с порядком, чтобы ваш фильтр мог выполняться перед любыми другими фильтрами действий.

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
    filters.Add(new SpecialFilterAttribute(), 1);
    filters.Add(new LogFilter(), 2);
}

Вот другой SO вопрос, связанный с Это

person pjobs    schedule 02.05.2015

Фильтры авторизации следует использовать только для авторизации. Для разных целей существуют разные фильтры. Вы должны создать свой собственный, унаследовав правильный тип. https://msdn.microsoft.com/en-us/library/gg416513(VS.98).aspx

Я не буду предлагать применять фильтры авторизации для каждого действия вашего приложения, лучше применить их на уровне контроллера или действия, просто выполнив что-то вроде [AllowUserWithPermissions("ManageScenarious")].

person Lyubomir Velchev    schedule 02.05.2015