Asp.net mvc 5 在asp.net mvc 5中使用标识自定义用户和角色

Asp.net mvc 5 在asp.net mvc 5中使用标识自定义用户和角色,asp.net-mvc-5,asp.net-identity-2,Asp.net Mvc 5,Asp.net Identity 2,我有一个使用 Install-Package Microsoft.AspNet.Identity.Samples -pre 指挥部。但是,对于这个项目,我有一个表示我的应用程序的所有用户的通用ApplicationUser类。如果我有不同类别的用户呢。例如,我可能有Teacher和Student实体,表示这两个实体的数据将不同。如何自定义应用程序以存储具有ApplicationUser所有功能的两个实体的数据? 我认为有一种方法是从ApplicationUser继承这两个类,然后在Identi

我有一个使用

Install-Package Microsoft.AspNet.Identity.Samples -pre
指挥部。但是,对于这个项目,我有一个表示我的应用程序的所有用户的通用ApplicationUser类。如果我有不同类别的用户呢。例如,我可能有
Teacher
Student
实体,表示这两个实体的数据将不同。如何自定义应用程序以存储具有ApplicationUser所有功能的两个实体的数据? 我认为有一种方法是从ApplicationUser继承这两个类,然后在
IdentityConfig.cs
中进行适当的更改,并为每个类定义控制器。还有其他有效的方法吗


如果我想使用内置的身份验证和授权功能,但使用数据库优先工作流,该怎么办?

首先,您想知道如何创建“类型”的用户。这样做的方式正是您所期望的:继承自
ApplicationUser
。默认情况下,这将生成一个“用户”表,其中包含一个附加的
鉴别器
列。此列将存储保存的类类型,即“教师”、“学生”或“应用程序用户”,EF将利用此信息为每个特定记录创建正确的类


但是需要注意的是,您需要了解
UserManager
的工作原理,即它是一个泛型类(
UserManager
)。示例中的默认
AccountController
实现在控制器上定义了一个
UserManager
属性,该属性是
UserManager的实例。

I从ApplicationUser继承了Student类,并使用StudentManager更改了ApplicationUserManager,后者从UserManager继承并更改了这些类与继承的类对应,但此行的UserAdminController中存在错误
AuthenticationManager.SignIn(新的AuthenticationProperties{IsPersistent=IsPersistent},Wait user.GenerateUserIdentityAsync(StudentManager))错误显示“无法从
IdentitySample.Models.StudentManager
转换到
Microsoft.AspNet.Identity.UserManager
”您不应该更改实际的
ApplicationUserManager
类。就这样吧。仅在控制器中,当您使用类似于
Student
的东西时,创建
UserManager
的新实例。