ASP. NET Core 3.1 + Angular 9 аутентификация на основе ролей - PullRequest
3 голосов
/ 19 июня 2020

Я создал веб-приложение с ASP. NET Core 3.1 и angular с шаблоном Visual Studio и включенной аутентификацией. enter image description here
Затем я построил Identity и добавил его в Startup.cs:

services.AddDefaultIdentity<ApplicationUser>(options => 
options.SignIn.RequireConfirmedAccount = true)
.AddRoles<IdentityRole>().AddEntityFrameworkStores<ApplicationDbContext>();

services.AddIdentityServer().AddApiAuthorization<ApplicationUser, ApplicationDbContext>();

services.AddAuthentication().AddIdentityServerJwt();

После этого я создал 3 пользователей и назначил им разные роли. Когда я добавляю атрибут [Authorize] к любому действию контроллера, он работает правильно. Но как сделать это ролевым? Я пробовал [Authorize(Roles = "Administrator")], но он отказал в доступе. В незащищенном методе:

 var loggedinUser = await _userManager.FindByNameAsync(userid);
 var roles = await _userManager.GetRolesAsync(loggedinUser);

в списке ролей есть администратор, поэтому я не знаю, что мне не хватает, чтобы он работал. Также внутри компонента Angular, как я могу получить роль текущего вошедшего в систему пользователя?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...