【问题标题】:Is it possible to have this kind of role-based authorization?是否有可能拥有这种基于角色的授权?
【发布时间】:2020-02-03 03:23:09
【问题描述】:

我正在我的 ASP.NET MVC Web 应用程序中设置基于角色的授权,我需要有关不同级别的角色授权属性的帮助。

我从this article 中读到了它,并看到它可能存在像此示例代码中这样的限制:

[Authorize(Roles = "Administrator, User")]
public class MyController : Controller
{
    public ActionResult SetAction1()
    {
    }

    [Authorize(Roles = "Administrator")]
    public ActionResult SetAction2()
    {
    }
}

这种角色授权可以吗?

[Authorize(Roles = "Administrator")]
public class ControlPanelController : Controller
{
    public ActionResult SetAction1()
    {
    }

    [Authorize(Roles = "Administrator, User")]
    public ActionResult SetAction2()
    {
    }
}

【问题讨论】:

  • 好吧,当你尝试使用它时发生了什么?这将是找出答案的最佳方式......

标签: asp.net-mvc roles asp.net-authorization


【解决方案1】:

没有;

当您在控制器上设置[Authorize(Roles = "Administrator")] 时,仅 Administrator 可以通过授权,User 角色将被阻止。所以,用户永远不会达到那个水平。但如果一个用户同时拥有AdministratorUser 角色,那么他/她将通过它。

【讨论】:

  • 简而言之,我应该在控制器上使用多个角色,在单个操作上使用单个角色?
  • 最好这样做。但在某些特定情况下,您可能希望按照问题中所示设置角色。
猜你喜欢
  • 2022-01-01
  • 2017-12-14
  • 2017-04-12
  • 2018-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-17
相关资源
最近更新 更多