我有这种方法可以使用 .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(...)”。
这当然是用户角色的集合。不只是一个角色。有谁知道如何做到这一点?