小编Dam*_*n T的帖子

Asp.Net Core:访问 AuthorizeHandler 中的自定义 AuthorizeAttribute 属性

在我进行Asp.Net core Authorization部分工作时,我需要一个新属性AuthorizeAttribute,我想将其用作额外的权限值。因此,我AuthorizeAttribute在自己的自定义 Authorize 属性中扩展了。见下文:

public class RoleAuthorizeAttribute : Microsoft.AspNetCore.Authorization.AuthorizeAttribute
    {
        public string Permission { get; private set; }

        public RoleAuthorizeAttribute(string policy, string permission) : base(policy)
        {
            this.Permission = permission;
        }
    }
Run Code Online (Sandbox Code Playgroud)

然后,我创建了一个AuthorizationHandler来检查要求,如下所示:

public class RolePermissionAccessRequirement : AuthorizationHandler<RolePermissionDb>
    {
        protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, RolePermissionDb requirement)
        {
            // check here..
            context.Succeed(requirement);

            return Task.FromResult(0);
        }
    }
Run Code Online (Sandbox Code Playgroud)

所有相应的服务集合映射我已经做过了,这里就省略了。

现在,我希望我的属性在控制器操作级别上像这样使用:

[RoleAuthorize("DefaultPolicy", "CustomPermission")]
public IActionResult List()
{
}
Run Code Online (Sandbox Code Playgroud)

有人会建议我如何访问处理程序 RolePermissionAccessRequirement 中 Action 方法顶部给出的权限属性值吗?

我想根据 …

c# authentication asp.net-mvc authorization asp.net-core

3
推荐指数
1
解决办法
3593
查看次数