Я реализовал аутентификацию на основе ролей несколько раз до 2.1.Следуя инструкциям по созданию новых идентификаторов 2.1.
Я расширил модель IdentityUser, добавив дополнительные поля, вход в систему работает нормально, появились новые поля.
startup.cs configure services содержит
services.AddDefaultIdentity<AppUser>()
.AddRoles<IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>();
Я заполнил роли
IdentityRole role = new IdentityRole();
role.Name = "Administrator";
IdentityResult roleResult = roleManager.
CreateAsync(role).Result;
Затем создал пользователя и добавил к роли
AppUser user = new AppUser();
user.UserName = "Admin";
user.Email = "admin@admin.com";
user.Name = "Administrator";
user.LockoutEnabled = false;
user.EmailConfirmed = true;
IdentityResult result = userManager.CreateAsync(user, "password").Result;
if (result.Succeeded)
{
userManager.AddToRoleAsync(user, "Administrator").Wait();
}
Все прошло успешно, и база данных выглядит хорошо (у AspNetUserRoles есть ссылки)
Тем не менее, украшение контроллера с ролью всегда будет возвращать несанкционированный
[Authorize(Roles = "Administrator")]
Но будет работать простая проверка входа с [Authorize]
(без роли).
Как я могу это исправить / какой самый простой способ включить исходный код, чтобы я мог пройти / отладить теги [Authorize]
?