Customize IdentityUser without Roles
我已经开始在新的ASP.NET MVC-App上进行开发,并且希望使用ASP.NET Identity 2进行用户管理。我想摆脱角色,因为我认为这绝对是不需要的,特别是如果我想到ASP.NET Identity处理幕后角色的方式:如所声称的。 (如果我在这里错了,请纠正我)
关于此问题,我有两个信息:这份官方Microsoft文档指出,如果现成的方法不能满足所有要求,则仅需要实现所需的功能。另一信息是,必须从
从我的角度来看,这些信息不是真正兼容的,因为如果我从此IdentityUser派生,则无论是否需要,我都会将所有这些内容都放入CustomUser-Implementation中。
我还想知道一件事:据我了解身份架构,主要分为两个部分:商店和经理。 Manager耦合到应用程序和存储,而Store耦合到Manager和存储。
存储接口与我预期的一样灵活。也许我应该从这里开始-但我仍然不知道如何创建一个customUser作为一个实体,该实体派生自IdentityUser,而没有任何对Role的引用。谁能告诉我我的问题是什么?
我发现有关此问题的唯一stackoverflow问题是
这里。但是我不相信这是一种遵循的方法。
好吧,首先,您不能真正摆脱角色。您可以选择不使用它们,但是仍然会有一个AspNetRoles表。引入角色功能后,就无法摆脱这一点。身份是可扩展的,因为您可以自定义和扩展角色,但是关系不可移动。 Microsoft文档本身并没有错。这也许还不是很清楚。如果您不想使用角色,则无需实现任何基于角色的功能。换句话说,您无需创建功能来管理角色,为用户分配角色或验证用户是否具有特定角色。但是,这并不意味着核心角色功能不再存在于Identity中:仅是您可以选择不使用它。
其次,至少在您有基于权限的访问控制的需求时,实际上确实需要角色。如果每个登录用户都可以执行其他登录用户可以执行的所有操作,则可能不需要角色,但是如果有特定于用户子集的任何功能,则需要角色。同样,角色不是声明,尽管它们的功能与声明相同。但是,身份具有一个单独的"声明"概念。