我正在使用Identity
类开发ASP.NET MVC应用程序我在基于角色的身份验证中遇到一个问题:如何显示admin到admin相关视图以及用户到用户相关视图?
这是我尝试过的
答案 0 :(得分:0)
尝试一下
@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"));
}
}
答案 1 :(得分:0)
我认为最好使用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中间件。