【问题标题】:Using ASP.NET 5, Identity 2 with custom store and roles with permissions使用 ASP.NET 5,具有自定义存储和具有权限的角色的身份 2
【发布时间】:2015-06-13 09:23:50
【问题描述】:

我们正在开发一个非公共业务应用程序,并将使用 ASP.ENT 5 和 Identity 2.x!员工、经理可以通过 Intranet 和 Internet 访问该应用程序。 最大的警告是我们不想使用 AD 或 Azure AD,因为我们的客户可能没有。我们也不需要个人登录,例如 facebook 或 twitter。

我们需要将 ASP.NET 身份机制与旧数据库挂钩,该数据库具有自己的角色、用户和权限实体。

对于初学者,有一个可以分配的“资源”树。例如。资源将是“添加新产品”、“删除产品”、“编辑产品”。您可以将一组用户(=角色)分配给一个或多个此类资源。

我的问题是如何将这样的自定义方案与 Identity 2.x 挂钩?

也不是一个“管理员”角色,而是具有不同访问级别的许多角色,这些角色取决于用户的工作/职位。经理 (="admin") 将创建这些角色并分配用户。

有没有办法阻止 ASP.NET 创建默认的 dbo.AspNetUsers 等表而使用旧表?

可以分开吗

1. Authentication -> handled by Identity 2 + ASP.NET
2. Authorization -> handled by custom code, e.g. a account controller

有人知道这个主题的资源吗?

【问题讨论】:

  • Identity 通常建立在 Entity Framework 之上:您可以使用与 EF 相同的机制来控制使用哪些表。

标签: c# asp.net asp.net-mvc authentication asp.net-identity-2


【解决方案1】:

当然有这种可能性。您正在寻找的是一种拥有身份 2 机制但使用您自己的映射的方法。

您可以查看此问题的答案:ASP.NET Identity User and Roles in Multisite,以下视频向您展示了有关使用身份 2 的现有 Db 的一些信息:https://www.youtube.com/watch?v=elfqejow5hM

我做了类似的事情,但出于多租户的目的。我使用的概念在我之前做的一个问题中得到了解释:Middleware for multisite ASP.NET Identity 2

确切地说,没有开箱即用的系统可供您使用,但 Identity 2 是非常可定制的。为了让您拥有自己的表,您必须创建自定义 DbContext 或覆盖 IdentityDbContext。这就是设置 Identity 2 使用的表的起点。

希望这会有所帮助!

【讨论】:

  • 感谢您的帮助。现在值得使用 Identity 3.0 (vNEXT) 还是坚持使用 2.2x?此外,EF 7.0 如何影响身份?你知道吗?
  • 目前我无法正确回答这些问题,抱歉。
猜你喜欢
  • 2010-10-29
  • 1970-01-01
  • 1970-01-01
  • 2016-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-17
相关资源
最近更新 更多