ASP.NET MVC ролевой доступ пользователя и администратора с использованием идентификатора - PullRequest
1 голос
/ 13 октября 2019

Я занимаюсь разработкой приложения ASP.NET MVC с использованием класса Identity. У меня возникла проблема в проверке подлинности на основе ролей: как отобразить представление, связанное с администратором, и представление, связанное с пользователем?

Вот что я пробовал

введите описание изображения здесь

Ответы [ 2 ]

0 голосов
/ 13 октября 2019

Я думаю, что лучше использовать AuthorizeAttribute (https://docs.microsoft.com/en-us/aspnet/core/security/authorization/roles?view=aspnetcore-3.0#adding-role-checks).

[Authorize(Roles = "HRManager,Finance")]
public class SalaryController : Controller
{
}

. Вы также можете применить AuthorizeAttribute к методам контроллера.

Не забудьте промежуточное ПО UseAuthorization.

0 голосов
/ 13 октября 2019

Попробуйте это

@inject SignInManager<AspNetMvcCore.Services.Models.User> SignInManager

@if (SignInManager.IsSignedIn(User) && User.IsInRole("Admin"))
{
}

@if (SignInManager.IsSignedIn(User) && User.IsInRole("User"))
{
}

и добавьте роли

public class HomeController : Controller
   {
       private readonly RoleManager<IdentityRole> _roleManager;

       public HomeController(RoleManager<IdentityRole> roleManager)
       {
           _roleManager = roleManager;

       }

       [HttpGet]
       public async Task<IActionResult> Index()
       {

         IdentityResult createUserRole = await _roleManager.CreateAsync(new IdentityRole("User"));
         IdentityResult createAdminRole = await _roleManager.CreateAsync(new IdentityRole("Admin"));           
      }
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...