正如我正在努力的那样Asp.Net core Authorization
部分,我需要在AuthorizeAttribute
我想将其用作额外的权限值。所以,我延长了AuthorizeAttribute
在我自己的自定义授权属性中。见下文:
public class RoleAuthorizeAttribute : Microsoft.AspNetCore.Authorization.AuthorizeAttribute
{
public string Permission { get; private set; }
public RoleAuthorizeAttribute(string policy, string permission) : base(policy)
{
this.Permission = permission;
}
}
然后,我创建了一个AuthorizationHandler
检查是否符合以下要求:
public class RolePermissionAccessRequirement : AuthorizationHandler<RolePermissionDb>
{
protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, RolePermissionDb requirement)
{
// check here..
context.Succeed(requirement);
return Task.FromResult(0);
}
}
所有各自的服务集合映射我已经完成了,这里就省略了。
现在,我希望我的属性在控制器操作级别上像这样使用:
[RoleAuthorize("DefaultPolicy", "CustomPermission")]
public IActionResult List()
{
}
有人会建议我吗如何访问处理程序 RolePermissionAccessRequirement 中 Action 方法顶部给出的权限属性值 ??
我想根据给定的自定义权限值执行某种访问规则Authorize attribute
在操作方法之上。
提前致谢!