У меня много контроллеров со многими действиями. Каждое действие имеет свою собственную роль (имя роли = имя_контроллера.имя).
В предыдущих версиях я мог проверить, может ли текущий пользователь получить какое-либо действие или не использовать "общий" атрибут AuthorizeAttribute:
public override void OnAuthorization(System.Web.Http.Controllers.HttpActionContext actionContext)
{
string currentAction = actionContext.ActionDescriptor.ActionName;
string currentController = actionContext.ActionDescriptor.ControllerDescriptor.ControllerName;
Roles = (currentController + "." + currentAction).ToLower();
base.OnAuthorization(actionContext);
}
С версией asp.net 5 я обнаружил, что мне нужно использовать требования (Как создать пользовательский атрибут AuthorizeAttribute в ASP.NET Core?), Проблема заключается в том, что AuthorizationContext не дает нам информации о действии, к которому пользователь пытается добраться.
Я не хочу добавлять атрибут Authorize для каждого действия, есть ли способ достичь моего требования в новой структуре? (Я предпочитаю избегать использования HttpContext.Current, он плохо вписывается в архитектуру конвейера)