Вы можете ввести IHttpContextAccessor
для доступа к текущему HttpContext и пользователю в поле зрения. Затем получите все роли пользователя, используя UserManager.GetRolesAsync(user)
.
@using Microsoft.AspNetCore.Identity
@using EarSystem.Models
@inject SignInManager<UserApp> Sign
@inject UserManager<UserApp> UserLog
@using Microsoft.AspNetCore.Http
@inject IHttpContextAccessor HttpContextAccessor
@{
Layout = "~/Views/Shared/_LayoutPanel.cshtml";
}
@if (User.Identity.IsAuthenticated)
{
var user = await UserLog.GetUserAsync(HttpContextAccessor.HttpContext.User);
var roles = await UserLog.GetRolesAsync(user);
<div>
<h1>Your Account:</h1>
<ul>
<li><b>Login:</b><p>@UserLog.GetUserName(User)</p></li>
<li>
@foreach (var role in roles)
{
<b>Role:</b><p>@role</p>
}
</li>
</ul>
</div>
}
В файле startup.cs ConfigureServices
, зарегистрируйтесь IHttpContextAccessor
:
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
Убедитесь, что вы добавили роли в базу данных, а также зарегистрированному пользователю назначена роль.