Я добавил начального пользователя в свою базу данных. Я не могу войти в систему с этим пользователем. Возможно, виноват хешированный пароль, или, может быть, я совершенно неправильно понимаю использование класса IdentityUser. Я действительно не уверен, поэтому любая помощь приветствуется.
Я добавил начальный код в сгенерированный класс Migrationsclass с именем Initial с помощью Add-Migration Initial
-команды в нижней части метода Up ().
var hasher = new PasswordHasher<IdentityUser>();
IdentityUser user = new IdentityUser();
var pass = hasher.HashPassword(user, "Holliday1!");
migrationBuilder.InsertData(
table: "AspNetUsers",
columns: new[] { "Id", "UserName", "Email", "PasswordHash", "EmailConfirmed", "PhoneNumberConfirmed", "TwoFactorEnabled", "LockoutEnabled", "AccessFailedCount" },
values: new object[] { user.Id, "Admin@istrator.com", "Admin@istrator.com", pass, true, true, false, false, 0 },
schema: null);
Весь класс выглядиткак это (очень сокращенный ofcourse //):
public partial class Initial : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "AspNetRoles",
columns: table => new
{
Id = table.Column<string>(nullable: false),
Name = table.Column<string>(maxLength: 256, nullable: true),
NormalizedName = table.Column<string>(maxLength: 256, nullable: true),
ConcurrencyStamp = table.Column<string>(nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_AspNetRoles", x => x.Id);
});
migrationBuilder.CreateTable(
name: "AspNetUsers",
columns: table => new
{
Id = table.Column<string>(nullable: false),
UserName = table.Column<string>(maxLength: 256, nullable: true),
NormalizedUserName = table.Column<string>(maxLength: 256, nullable: true),
Email = table.Column<string>(maxLength: 256, nullable: true),
NormalizedEmail = table.Column<string>(maxLength: 256, nullable: true),
EmailConfirmed = table.Column<bool>(nullable: false),
PasswordHash = table.Column<string>(nullable: true),
SecurityStamp = table.Column<string>(nullable: true),
ConcurrencyStamp = table.Column<string>(nullable: true),
PhoneNumber = table.Column<string>(nullable: true),
PhoneNumberConfirmed = table.Column<bool>(nullable: false),
TwoFactorEnabled = table.Column<bool>(nullable: false),
LockoutEnd = table.Column<DateTimeOffset>(nullable: true),
LockoutEnabled = table.Column<bool>(nullable: false),
AccessFailedCount = table.Column<int>(nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_AspNetUsers", x => x.Id);
});
//migrationBuilder.CreateTable("AspNetRoleClaims"...);
//migrationBuilder.CreateTable("AspNetUserClaims"...);
//migrationBuilder.CreateTable("AspNetUserLogins" ...);
//migrationBuilder.CreateTable("AspNetUserRoles"...);
//migrationBuilder.CreateTable("AspNetUserTokens"...);
//migrationBuilder.CreateIndex(...)
//User and role seeds
var role1 = new IdentityRole();
var roleId1 = role1.Id;
var role2 = new IdentityRole();
var roleId2 = role2.Id;
migrationBuilder.InsertData(
table: "AspNetRoles",
columns: new[] { "Id", "Name" },
values: new object[,] { { roleId1, "Användare" }, { roleId2, "Administratör" } });
var hasher = new PasswordHasher<IdentityUser>();
var user = new IdentityUser();
var pass = hasher.HashPassword(user, "Holliday1!");
migrationBuilder.InsertData(
table: "AspNetUsers",
columns: new[] { "Id", "UserName", "Email", "PasswordHash", "EmailConfirmed", "PhoneNumberConfirmed", "TwoFactorEnabled", "LockoutEnabled", "AccessFailedCount" },
values: new object[] { user.Id, "Admin@istrator.com", "Admin@istrator.com", pass, true, true, false, false, 0 },
schema: null);
migrationBuilder.InsertData(
table: "AspNetUserRoles",
columns: new [] {"UserId", "RoleId"},
values: new object[] { user.Id, roleId2}
);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
//migrationBuilder.Drop(...) drops all tables
}
}
База данных SQLLite, и пользователь находится в db-файле с сгенерированным идентификатором и хэшированным паролем. При создании пользователя с помощью страницы регистрации я получаю другой отформатированный хешированный пароль, поэтому я не уверен, что хэш, который я использую для своего начального пользователя, верен.
Есть идеи? Спасибо!