Делаю сайт на ASP.NET Core MVC + Microsoft Identity. Добавляю роль админа и пользователя-админа в методе OnModelCreating класса контекста:
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
builder.Entity<IdentityRole>().HasData(new IdentityRole
{
Id = "6b7bf0ac-b815-455a-8908-8133983c9200",
Name = "admin",
NormalizedName = "ADMIN"
});
builder.Entity<Visitor>().HasData(new Visitor
{
Id = "aa6c0c49-3d13-433f-bc24-fcf769b6e6e7",
UserName = "admin@email.com",
NormalizedUserName = "ADMIN@EMAIL.COM",
Email = "admin@email.com",
NormalizedEmail = "ADMIN@EMAIL.COM",
EmailConfirmed = true,
PasswordHash = new PasswordHasher<IdentityUser>().HashPassword(null, "superpassword"),
SecurityStamp = string.Empty,
ConcurrencyStamp = string.Empty,
});
builder.Entity<IdentityUserRole<string>>().HasData(new IdentityUserRole<string>
{
RoleId = "6b7bf0ac-b815-455a-8908-8133983c9200",
UserId = "aa6c0c49-3d13-433f-bc24-fcf769b6e6e7"
});
}
и затем делаю миграцию.
В Indext.cshtml проверяю роль пользователя:
@if (User.IsInRole("admin"))
{
<a asp-action="Edit" asp-route-id="@movie.Id">Edit</a>
<span>|</span>
<a asp-action="Delete" asp-route-id="@movie.Id">Delete</a>
}
После авторизации User.IsInRole все равно возвращает false, хотя данные в БД имеются. Может я что-то упускаю или в корне делаю не правильно. Заранее спасибо