这是我的类,继承自IdentityUser:
public class User : IdentityUser
{
public string Extension { get; set; }
}
这是DbContext
public class SecurityDbContext : IdentityDbContext<User>
{
private string connectionString;
private string dbProvider;
public SecurityDbContext(string connectionString, string dbProvider)
{
this.connectionString = connectionString;
this.dbProvider = dbProvider;
}
在Startup.cs
services.AddDbContext<SecurityDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("dataContext")));
services.AddIdentity<User, IdentityRole>()
.AddEntityFrameworkStores<SecurityDbContext>()
.AddSignInManager<SignInManager<User>>()
.AddDefaultTokenProviders();
我添加了属性扩展名,删除了所有表并调用了
EnsureDatabasesCreated();
它创建了所有表,但是AspNetUsers表不包含Extension属性。 我在做什么错了?
答案 0 :(得分:0)
您还必须使上下文从IdentityDbContext<TUser>
继承,其中TUser
是您的自定义用户类型(在您提供的代码中为User
),也从IdentityUser
继承,例如:
public class ApplicationDbContext : IdentityDbContext<User>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
}
这是netcore网络应用程序吗?如果是这样,请确保您还通过ServiceProvider
方法在ConfigureServices
上注册了Identity并指定了自定义User类:
public void ConfigureServices(IServiceCollection services)
{
...
services.AddIdentity<User, IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddSignInManager<SignInManager<User>>()
.AddUserManager<UserManager<User>>();
...
}
指定自定义User
类和自定义Role
类(如果需要)。
答案 1 :(得分:0)
原来,我必须将此字段添加到我的RegisterRequest中。