Предполагая, что вы настраиваете свой проект более или менее в соответствии со стандартным шаблоном, я полагаю, что вы можете использовать тип переопределения для вашего удостоверения пользователя следующим образом:
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
// pretty standard initialisation so far
services.AddDbContext<ProjectsDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));
services.AddDefaultIdentity<User>(options => options.SignIn.RequireConfirmedAccount = false) // this is the key - put your custom User Identity here
.AddEntityFrameworkStores<ProjectsDbContext>();
}
ProjectsDbContext.cs
public class User : IdentityUser
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class ProjectsDbContext: IdentityDbContext<User> // this is your custom User type
{
public ProjectsDbContext(DbContextOptions<ProjectsDbContext> options)
: base(options)
{
}
}
тогда, так как вы изменяете модель данных, вам нужно будет перенести схему:
PM> Add-Migration change_IdentityUser
PM> Update-Database
вы заметите, что миграция добавляет ваши настраиваемые поля в таблица:
public partial class change_IdentityUser : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "FirstName",
table: "AspNetUsers",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "LastName",
table: "AspNetUsers",
nullable: true);
}
.......
и, наконец, все ссылки на SignInManager
/ UserManager
и другие помощники необходимо будет обновить с помощью нового параметра типа generi c:
_LoginPartial. CS html
@inject SignInManager<User> SignInManager
@inject UserManager<User> UserManager