如何在 ASP.NET Core 5 中添加身份服务

How to add Identity Services in ASP.NET Core 5

我正在尝试添加身份服务。

我正在尝试更改用户 table 中的列数。不知道怎么修改。

当我改变

// IT DOESN'T WORK
services.AddIdentityCore<User>() 
        .AddEntityFrameworkStores<ApplicationContext>();

 // this works
services.AddIdentityCore<IdentityUser>()
        .AddEntityFrameworkStores<ApplicationContext>();

代码:

// Startup.cs
public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<ApplicationContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
    
    services.AddIdentityCore<User>().AddEntityFrameworkStores<ApplicationContext>();
    
    services.AddRazorPages();
}
    
public class User : IdentityUser
{
    public int Year { get; set; }
}    

尝试如下更改:

services.AddDefaultIdentity<User>()
    .AddEntityFrameworkStores<ApplicationDbContext>();

确保您的 DbContext 如下所示:

public class ApplicationDbContext : IdentityDbContext<User>
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
        : base(options)
    {
    }
    protected override void OnModelCreating(ModelBuilder builder)
    {
        base.OnModelCreating(builder);
    }
}

确保更新 _LoginPartial.cshtml 并将 IdentityUser 替换为 User:

@inject SignInManager<User> SignInManager
@inject UserManager<User> UserManager

终于可以给身份披上围巾了。