我使用的是 asp.net 身份,并且我有许多从 IdentityUser 继承的用户类。
假设我有一个像这样的继承链:
IdentityUser <- AppUser <- ServiceUser <- ServiceEmployee 和 ServiceCustomer(均继承自 ServiceUser)。
当尝试创建统一的登录表单时,最好的策略是什么?
如果您使用 OTB 帐户 Controller 并将 UserManager 更改为使用 ServiceUser 但尝试登录注册为 ServiceEmployee 的帐户,它将失败,因为 FindAsync() 显然仅尝试根据鉴别器字段中的“ServiceEmployee”进行查找,因此,如果该帐户注册为不同的“类型”,则无法用于登录。因此,当注册类型与登录类型不同时,任何组合都会发生这种情况。
我应该更新登录操作以使用多个 UserManagers 以便检查每个用户类型还是有更好的方法来实现我想要实现的目标。
感谢您提供任何信息。
最佳答案
您是否考虑过将您的身份用户和您自己的应用程序用户分开?意思是 User
是保存您的身份信息的内容,Person
是您应用程序的其余部分使用的内容(以及其他类型,例如 Employee 继承自)。我自己就是这样做的。我将所有安全/身份信息完全分开(在单独的项目/上下文中)并且只链接我的 User
和 Person
实体,这对我来说非常有用 - 更容易维护和更新我的安全模型而不影响我的应用程序的其余部分和(尽可能多)。
关于c# - Asp.net Identity - 如何在不考虑鉴别器的情况下登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20907080/