Доступ к атрибуту метода из OnActionExecuting - PullRequest
0 голосов
/ 14 мая 2018

Мне было интересно, как я могу проверить, есть ли у метода контроллера определенный атрибут, например AllowAnonymous, внутри OnActionExecuting метода переопределения.

Я пробовал с этим:

var methodAttr = Attribute.GetCustomAttribute(context.ActionDescriptor.GetType(), typeof(AuthorizeAttribute));

Но я всегда получаю нулевое значение.

Пробовал также с этим:

MethodBase method = MethodBase.GetCurrentMethod();
AuthorizeAttribute methodAttr = (AuthorizeAttribute)method.GetCustomAttributes(typeof(AuthorizeAttribute), true)[0];

Но когда нет AuthorizeAttribute, я получаю исключение вне диапазона.

Как я могу сделать эту проверку?

1 Ответ

0 голосов
/ 14 мая 2018

На основании ваших тэгов я предполагаю, что это для .net core. Вот пример проверки для пользовательского атрибута

var descriptor = (ControllerActionDescriptor) context.ActionDescriptor;
if (descriptor.MethodInfo.GetCustomAttribute<AuthorizeAttribute>() != null) { 
    //Do something
}
...