gpt4 book ai didi

c# - ASP.NET MVC 授权具有多个角色的用户

转载 作者:可可西里 更新时间:2023-11-01 03:06:12 26 4
gpt4 key购买 nike

我需要将我的 ASP.NET MVC 应用程序中的 Controller 授权给具有两个角色的用户。我正在使用这样的授权属性:

[Authorize(Roles = "Producer, Editor")]

但这允许生产者和编辑者控制。我只想允许用户同时拥有这两种角色,而不仅仅是其中之一。

我怎样才能做到这一点?

最佳答案

如问题所述,当多个角色单个 Authorize() 调用中被赋予时,如果用户属于对于列出的任何角色,他们将被授予访问权限;就像逻辑 OR 运算符。

或者,要实现逻辑 AND 运算符的效果,您可以应用 Authorize 属性多次。例如..

[Authorize(Roles = "Producer")]
[Authorize(Roles = "Editor")]
public ActionResult Details(int id) {
// Only available to users who are Producers AND Editors
}

对于上面的示例,只有属于 ProducerEditor 角色的用户才能访问操作主体。

Rudi 在评论中指出,这让您可以创建一些相当复杂的访问规则,而无需实现自定义 AuthorizeAttribute。例如,在下面的代码中,用户可以执行操作,如果他们是:a) Enabled 角色和 b) EditorAdmin 角色。

[Authorize(Roles = "Enabled")]
[Authorize(Roles = "Editor,Admin")]
public ActionResult Details(int id) {
// Only available to users who are Enabled AND either an Admin OR an Editor
}

我不确定是哪个版本引入了这个,但它至少在 MVC 4 和 5 中有效。

关于c# - ASP.NET MVC 授权具有多个角色的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24738624/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com