我可以在一个项目MVC中使用两个ASP.NET核心标识吗?

时间:2017-12-30 15:52:56

标签: sql asp.net-identity asp.net-core-2.0

我有两个不同的实体StaffCustomer,它们具有不同的属性和行为,每个实体都有一个单独的登录系统。我打算使用ASP.NET Identity来管理每个实体的登录,角色,声明等。

是否有可能并且最佳做法是为每个实体使用每个身份系统?我的想法是这样的:AspNetUser将成为StaffCustomerAspNetUserRole将成为StaffRoleCustomerRole等。

什么是我的问题的适当解决方案? (不合并StaffCustomerUser实体。

1 个答案:

答案 0 :(得分:1)

到目前为止,您所描述的所有内容都可以通过使用基于角色的授权和staff角色的单个标准身份实例来完成。您的StaffCustomer对象都可以与AspNetUser实例进行一对一的引用。

您可以使用两种注册方法RegisterNewUserAddStaffMemberRegisterNewUser方法只会创建一个新的AspNetUser实例,而AddStaffMember方法将创建一个新的AspNetUser实例,并添加一个AspNetRole实例,其值为{ {1}}。匿名访问staff方法,而RegisterNewUser方法将访问权限仅允许具有AddStaffMember角色的用户