Вызывается пользовательский атрибут авторизации, даже если атрибут не используется - PullRequest
0 голосов
/ 04 июня 2018

У меня возникает следующая проблема с ASP.Net MVC 5. Вызывается метод OnAuthorization, хотя я нигде не добавил атрибут в своем коде.

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
    public class CustomAuthorizeAttribute : AuthorizeAttribute
    {
        public override void OnAuthorization(AuthorizationContext filterContext)
        {

        }
    }

Я добавил фильтрв Global.asax:

AreaRegistration.RegisterAllAreas();
GlobalFilters.Filters.Add(new CustomAuthorizeAttribute());

Разве метод OnAuthorization не должен вызываться только при добавлении атрибута в класс или метод?

1 Ответ

0 голосов
/ 04 июня 2018

Не следует ли вызывать метод OnAuthorization только при добавлении атрибута в класс или метод?

Частично да.Но вы должны знать, что ASP.Net MVC имеет понятие глобальных фильтров.Глобальные фильтры используются, когда вам не нужно повторяться (нарушая принцип СУХОЙ).Это помогает вам централизовать и настроить фильтры, которые должны быть выполнены для всех контроллеров.

Эта строка

GlobalFilters.Filters.Add(new CustomAuthorizeAttribute());

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

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