.net Identity SignInManager and HttpContext.User.Identity re



在我调用的控制器方法中:

SignInResult result = await _signInManager.PasswordSignInAsync(username, password, false, false);

它成功地执行了登录,但就在(在相同的方法执行中(之后,如果我检查HttpContext.User.Identity的内容,则该对象为空。

如果我调用另一个api方法并检查HttpContext.User.Identity的内容,那么这次是用记录的用户信息正确填充的。

为什么这只对后续调用可见,以及我如何在登录_signInManager.PasswordSignInAsync之后(以相同的方法(获得身份

User设置在AuthenticationMiddleware中,在控制器之前执行(请参阅中间件顺序(。

由于您可以检查登录是否成功,因此您只需自己获取用户即可,例如使用UserManager:

if (result.Succeeded)
{
var user = await _userManager.FindByNameAsync(username);
}

最新更新