我使用自定义类通过身份框架自动登录用户,然后我使用应用程序用户获取多个信息,但现在,登录成功时应用程序用户为空,这是我的代码:
_signInManager.PasswordSignInAsync(username, pwd, RememberMe, lockoutOnFailure: false);
ApplicationUser = _userManager.GetUserAsync(_signInManager.Context.User).Result;
代码不在控制器中,而是在用于登录和用户管理的自定义类中,它昨天运行良好,但我无法弄清楚为什么它现在不起作用。
"_signInManager"和"_userManager"是通过构造函数中的依赖项注入创建的。
编辑
我已将代码移动到可以访问"用户"的控制器,登录成功,但 User.Identity.isAuthenticated 为 False
执行_signInManager.PasswordSignInAsync
后,您需要在请求中设置 cookie。这意味着您需要允许重定向到另一个页面,然后才能使用Context.User
。
如果您在登录后需要ApplicationUser
,只需使用_userManager.FindByNameAsync(username)
。