将用户路由到正确的区域

Route user to correct area

当用户登录时。我正在寻找一种方法,根据用户在身份中的角色将用户路由到正确的区域。

我试过:

谢谢你的想法!

如果你使用asp.net核心身份,在控制器中,你可以直接使用var isInRole = User.IsInRole("Admin")来检查当前用户是否有Admin角色。

或使用UserManager获取当前用户及其所有角色:

private readonly UserManager<IdentityUser> _userManager;
public HomeController(UserManager<IdentityUser> userManager)
{
    _userManager = userManager;
}

[Authorize(Roles = "Admin")]
public async Task<IActionResult> TestView()
{
    var user = await _userManager.GetUserAsync(HttpContext.User);

    var roles = await _userManager.GetRolesAsync(user);

    var matchingvalues = roles.SingleOrDefault(stringToCheck => stringToCheck.Equals("Admin"));
    if(matchingvalues != null)
    {
        return RedirectToAction("Index", "Dashboard", new { area = "Admin" });
    }

    return View();
}