2015-05-02 5 views
1

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

ответ

0

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

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

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

-1

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

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