我将ApplicationUser
设置为继承IdentityUser
public class ApplicationUser : IdentityUser
{
//some properties
}
并添加两个类继承ApplicationUser
使用EF核心TPH
public class SystemManager : ApplicationUser
{
//some properties
}
public class NormalUser : ApplicationUser
{
//some properties
}
我需要在运行时添加一些数据,并且在Program.Main()
处有类似的代码
var services = scope.ServiceProvider;
var userManager = services.GetRequiredService<UserManager<SystemManager>>();
在Starup.ConfigureServices()
上注册服务,例如
services.AddIdentity<ApplicationUser, ApplicationRole>(options =>
{
options.Lockout.AllowedForNewUsers = true;
options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(5);
options.Lockout.MaxFailedAccessAttempts = 5;
options.User.RequireUniqueEmail = false;
options.Password.RequireNonAlphanumeric = false;
options.Password.RequireUppercase = false;
options.Password.RequireLowercase = false;
})
.AddUserManager<NormalUser>()
.AddUserManager<SystemManager>()
.AddEntityFrameworkStores<DBContext>()
.AddDefaultTokenProviders();
然后我出现了异常
System.InvalidOperationException: No service for type 'Microsoft.AspNetCore.Identity.UserManager`1[ApplicationCore.Entity.Data.SystemManager]' has been registered.
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
at Application.Program.Main(String[] args)
下一步我该怎么做?