在控制器方法中,我调用:
SignInResult result = await _signInManager.PasswordSignInAsync(username, password, false, false);
它成功地执行了登录,但是(在相同的方法执行中)之后,如果我检查HttpContext.User.Identity的内容,这个对象是空的。
如果我调用另一个api方法并检查HttpContext.User.Identity的内容,这一次是否正确地填充了登录的用户信息。
为什么这只对后续调用可见,以及如何在登录_signInManager.PasswordSignInAsync (在相同的方法中)之后获得标识
发布于 2020-05-02 17:18:56
User在AuthenticationMiddleware中设置,在控制器之前执行(参见Middleware order)。
由于您可以检查登录是否成功,因此只需自己获取用户就可以了,例如使用UserManager
if (result.Succeeded)
{
var user = await _userManager.FindByNameAsync(username);
}https://stackoverflow.com/questions/61525128
复制相似问题