允许角色和策略访问控制器操作

Posted

技术标签:

【中文标题】允许角色和策略访问控制器操作【英文标题】:Allow roles and policy to access controller action 【发布时间】:2021-11-21 22:37:02 【问题描述】:

现在我装饰了一个这样的方法,以允许“阅读器”使用策略访问我的控制器操作。

[Authorize(Policy = Policy.Reader)]

如何允许 Reader Role 访问相同的方法?例如,我想同时授予 Reader Policy 和 Reader Role 的访问权限。

[Authorize(Roles = Role.Reader)] 
and 
[Authorize(Policy = Policy.Reader)] 

【问题讨论】:

【参考方案1】:

您可以使用多个 Authorize 属性来指定角色和策略

示例:

[Authorize(Roles = "Role")]  
[Authorize(Policy = "Policy")]  
public IActionResult MultipleAccess()  
  
    return View("Page");  
 

如果你想添加自定义角色,你可以试试这个

示例:

public static class CustomRoles

    public const string Administrator = "Administrador";
    public const string User = "user";


[Authorize(Roles = CustomRoles.Administrator +","+ CustomRoles.User)]

更多详情请参考document

【讨论】:

以上是关于允许角色和策略访问控制器操作的主要内容,如果未能解决你的问题,请参考以下文章

来聊聊RBAC角色访问控制

ClickHouse 创建用户/角色/行权限策略/配额 Quota 限流等

访问被 CORS 策略阻止:没有“访问控制允许来源”

关于RBAC(Role-Base Access Control)的理解(转)

已被 CORS 策略阻止:没有“访问控制允许来源”

httpd的安全策略