【问题标题】:Can I apply user created Roles in MVC 5?我可以在 MVC 5 中应用用户创建的角色吗?
【发布时间】:2014-06-10 20:50:37
【问题描述】:

我在网上找到了大量解释如何使用 RoleManager 等在 MVC 5 中创建角色的示例,但我找不到答案,是否可以动态应用在用户级别创建的角色(通过 UI)到应用程序的某些部分?

我不明白创建新角色只是为了将它们存储在数据库中而没有其他功能的目的吗?

感谢任何cmets。

这是我的角色创建代码示例:

 public bool CreateRole(string name)
    {
        var rm = new RoleManager<IdentityRole>(
            new RoleStore<IdentityRole>(new ApplicationDbContext()));
        var idResult = rm.Create(new IdentityRole(name));
        return idResult.Succeeded;
    }

【问题讨论】:

  • 当您说动态地将在用户级别(通过 UI)创建的角色应用于应用程序的某些部分时,您的意思是动态。这个 CreateRole 方法本质上不是动态的。你的代码有问题还是什么。
  • @PalakBhansali 大多数示例显示这样的身份验证:[Authorize(Roles = "Admin")] 用户不可扩展
  • 你想扩展什么?管理员角色或有关角色的任何内容。

标签: asp.net-mvc asp.net-mvc-5 roles role-base-authorization


【解决方案1】:

您是否希望不仅仅使用角色属性来应用细粒度授权?例如:

  • 用户与目标文档/资源之间的关系?
  • 一天中的时间?

在这种情况下,您需要从 RBAC 迁移到 ABAC(基于属性的访问控制)。

NIST 有一个关于该主题的精彩页面:csrc.nist.gov/projects/abac/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-10
    • 2013-11-10
    • 1970-01-01
    • 2014-12-15
    • 2013-10-17
    • 1970-01-01
    • 1970-01-01
    • 2014-11-02
    相关资源
    最近更新 更多