我有两个不同的实体Staff
和Customer
,它们具有不同的属性和行为,每个实体都有一个单独的登录系统。我打算使用ASP.NET Identity来管理每个实体的登录,角色,声明等。
是否有可能并且最佳做法是为每个实体使用每个身份系统?我的想法是这样的:AspNetUser
将成为Staff
和Customer
,AspNetUserRole
将成为StaffRole
和CustomerRole
等。
什么是我的问题的适当解决方案? (不合并Staff
和Customer
到User
实体。
答案 0 :(得分:1)
到目前为止,您所描述的所有内容都可以通过使用基于角色的授权和staff
角色的单个标准身份实例来完成。您的Staff
和Customer
对象都可以与AspNetUser
实例进行一对一的引用。
您可以使用两种注册方法RegisterNewUser
和AddStaffMember
。 RegisterNewUser
方法只会创建一个新的AspNetUser
实例,而AddStaffMember
方法将创建一个新的AspNetUser
实例,并添加一个AspNetRole
实例,其值为{ {1}}。匿名访问staff
方法,而RegisterNewUser
方法将访问权限仅允许具有AddStaffMember
角色的用户