【问题标题】:ASP.NET Identity Custom with Group-based Roles具有基于组的角色的 ASP.NET 标识自定义
【发布时间】:2015-06-19 18:07:57
【问题描述】:

也许我误解了 ASP.NET 身份和数据库模型中角色的概念,但我正在努力思考如何实现以下场景:使用 ASP.NET 身份,用户似乎拥有基于角色的全局权限,而不是更细粒度级别的权限。我正在尝试使用 Code-First 在 EF6 中实现数据库架构,其中用户可以是多个组的成员。但是,我希望用户在一个组中拥有一个角色,而在另一个组中拥有不同的角色,而不是拥有一个全局角色。

例如,用户可以创建群组,因此是群组管理员,但也可以是群组中的教师,因此能够贡献内容。同一用户也可能是不同组中的学生,因此在该组中具有不同的权限。用户可以在给定组中执行多个角色,他们的权限应基于他们在该组中的角色。

据我所知,这不是 ASP.NET 标识的预期结构,因为我看不到如何将特定角色的范围限制为组。另外,理想情况下,我希望能够将用户分配给一个组,然后将一组用户分配给另一个组,例如,我有一个用户组,我将该组分配给另一个组中的特定角色.

我想到的是一个成员表,它有 UserId、GroupId 和 RoleId 来处理将角色映射到特定组,但是我将如何扩展它以使角色继承自组,并且我能够利用 ASP .NET Identity 来帮助我管理这些角色,还是我必须从头开始编写自己的解决方案?

【问题讨论】:

    标签: entity-framework-6 asp.net-identity database-schema code-first


    【解决方案1】:

    如果您还没有找到它并且正在使用 MVC,请查看它。

    http://typecastexception.com/post/2014/08/10/ASPNET-Identity-20-Implementing-Group-Based-Permissions-Management.aspx

    我最近一直在处理与您相同的问题。这涵盖了很多要求,但有一个差距 - ASP.NET Identity 不区分授权和身份验证。在所有情况下,没有所需权限的用户都会被发送到登录屏幕。如果他们没有登录,那很好,但如果他们登录并尝试访问他们无权访问的东西,那就不行了。大概就是这里的地址,不过我还没来得及测试呢。

    How to make Authorize attribute return custom 403 error page instead of redirecting to the Logon page

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-22
      • 2014-01-04
      • 1970-01-01
      • 2010-10-29
      • 1970-01-01
      • 2016-08-26
      • 1970-01-01
      相关资源
      最近更新 更多