首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于角色和策略的同一控制器动作的身份验证

基于角色和策略的同一控制器动作的身份验证
EN

Stack Overflow用户
提问于 2020-06-08 11:35:07
回答 1查看 256关注 0票数 1

从MS docs中,我可以看到我可以定义多个角色。授权( HRManager = "HRManager,Finance"),这意味着用户必须处于HRManager或Finance角色中。

我还为此操作定义了基于资源的策略,名为"ResPolicy1“。

我想要实现的是,用户可以在角色HRManager或角色财务或ResPolicy1是满意的,这三者之一。

  1. 我可以像这样使用AuthorizeAttribute (Roles=“HRManager,Finance",Policy="ResPolicy1”)
  2. 是否可以在相同的控制器操作上同时具有基于策略和基于角色的授权?
EN

回答 1

Stack Overflow用户

发布于 2020-06-09 07:14:49

我可以像这样使用AuthorizeAttribute授权(Roles=“HRManager,Finance",Policy="ResPolicy1”)吗?是否可以在相同的控制器操作上同时具有基于策略和基于角色的授权?

我们可以在相同的控制器动作上具有基于策略和基于角色的授权。如下所示:

代码语言:javascript
复制
   [Authorize(Policy = "UserResource", Roles = "Users")]
    public IActionResult Index()
    {
        return View();
    }

如果我们为同一个控制器添加策略和角色,这意味着用户应该匹配角色授权和策略授权。

如果用户只是在角色,但没有通过策略授权,他将收到403被禁止。

如果用户只是通过策略授权,而不是在角色,他也将收到403被禁止。

如果您想要完成该用户可以在角色HRManager或在角色财务中或ResPolicy1是满意的,那么您可以在自定义授权处理程序中编写您自己的逻辑。关于如何实现它的更多细节,您可以参考这个文章

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62261154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档