从MS docs中,我可以看到我可以定义多个角色。授权( HRManager = "HRManager,Finance"),这意味着用户必须处于HRManager或Finance角色中。
我还为此操作定义了基于资源的策略,名为"ResPolicy1“。
我想要实现的是,用户可以在角色HRManager或角色财务或ResPolicy1是满意的,这三者之一。
发布于 2020-06-09 07:14:49
我可以像这样使用AuthorizeAttribute授权(Roles=“HRManager,Finance",Policy="ResPolicy1”)吗?是否可以在相同的控制器操作上同时具有基于策略和基于角色的授权?
我们可以在相同的控制器动作上具有基于策略和基于角色的授权。如下所示:
[Authorize(Policy = "UserResource", Roles = "Users")]
public IActionResult Index()
{
return View();
}如果我们为同一个控制器添加策略和角色,这意味着用户应该匹配角色授权和策略授权。
如果用户只是在角色,但没有通过策略授权,他将收到403被禁止。
如果用户只是通过策略授权,而不是在角色,他也将收到403被禁止。
如果您想要完成该用户可以在角色HRManager或在角色财务中或ResPolicy1是满意的,那么您可以在自定义授权处理程序中编写您自己的逻辑。关于如何实现它的更多细节,您可以参考这个文章。
https://stackoverflow.com/questions/62261154
复制相似问题