使用身份的ASP.NET MVC基于角色的访问用户和管理员

时间:2019-10-13 16:59:44

标签: asp.net-mvc authentication

我正在使用Identity类开发ASP.NET MVC应用程序我在基于角色的身份验证中遇到一个问题:如何显示admin到admin相关视图以及用户到用户相关视图?

这是我尝试过的

enter image description here

2 个答案:

答案 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中间件。