我有很多控制器有很多动作.每个操作都有自己的角色(角色名称= ControllerName.actionName).
在以前的版本中,我可以测试当前用户是否可以使用"通用"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);
}
Run Code Online (Sandbox Code Playgroud)
使用asp.net 5版本,我发现我需要使用需求(如何在ASP.NET Core中创建自定义AuthorizeAttribute?).问题是AuthorizationContext没有向我们提供有关用户尝试访问的操作的信息.
我不想在每个操作上放置Authorize属性,有没有办法用新框架实现我的要求?(我更喜欢避免使用HttpContext.Current,它不适合管道架构)