1

我有这种方法可以使用 .Net Core Cookie 身份验证登录用户。

    [HttpPost]
    [AllowAnonymous]
    public async Task<IActionResult> Login(LoginVM loginModel)
    {
        var claims = new List<Claim>
        {
            new Claim(ClaimTypes.Name, loginModel.UserName)
        };

        var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);

        // TODO: Validate against DB Staff/User.
        // If valid, sign in.
        await HttpContext.SignInAsync(new ClaimsPrincipal(claimsIdentity));
        return Redirect(loginModel?.ReturnUrl ?? "/");
        // Else return View();
    }

我正在使用发布到登录视图模型的用户名填写 ClaimTypes.Name。是否有类似 ClaimTypes.Roles 的值要填写?我需要能够使用“User.IsInRole(...)”。

这当然是用户角色的集合。不只是一个角色。有谁知道如何做到这一点?

4

1 回答 1

1

像这样添加:

claims.Add(new Claim(ClaimTypes.Role, p.Role.RoleCd));
于 2018-02-23T17:38:53.037 回答