我一直在尝试在startup.cs中设置角色和用户。我现在可以使用角色,但用户无法生成“没有类型‘Microsoft.AspNetCore.Identity.UserManager’的服务”。我花了半天时间浏览 stackoverflow 和其他网站上给出的解决方案,包括 learn.microsoft.com 上的示例,但我没有更接近解决方案。我已经删除了我尝试过的所有添加内容,这些添加内容都失败了,并回到了角色起作用但用户不起作用的位置。 ApplicationDBContext 看起来像这样:
public class ApplicationDbContext : IdentityDbContext<BOAPUser>
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options){}
public virtual DbSet<IdentityUser> BOAPUser { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{base.OnModelCreating(modelBuilder);}
Startup.cs 有:
services.AddDefaultIdentity<BOAPUser>(options => options.SignIn.RequireConfirmedAccount = false)
.AddRoles<IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>();
断裂的地方:
using (var scope = app.ApplicationServices.CreateScope())
{
var userManager = scope.ServiceProvider.GetRequiredService<UserManager<IdentityUser>>();
我找到了问题所在。导致问题的行应为
var userManager = scope.ServiceProvider.GetService<UserManager<ApplicationUser>>();
而不是
var userManager = scope.ServiceProvider.GetService<UserManager<IdentityUser>>();