我使用自定义类自动登录具有身份框架的用户然后我使用ApplicationUser获取多个信息但是现在,当登录成功时,ApplicationUser为空,这里是我的代码:
_signInManager.PasswordSignInAsync(username, pwd, RememberMe, lockoutOnFailure: false);
ApplicationUser = _userManager.GetUserAsync(_signInManager.Context.User).Result;
代码不在控制器中,而是在用于登录和用户管理的自定义类中,它昨天运行良好,但我无法理解为什么它现在不起作用。
' _signInManager'和' _userManager'是由构造函数中的依赖注入创建的。
修改
我已将代码移至控制器,我可以访问该控制器,用户",登录成功,但User.Identity.isAuthenticated为False
答案 0 :(得分:1)
执行_signInManager.PasswordSignInAsync
后,您需要在请求中设置Cookie。这意味着在您使用Context.User
之前,您需要允许重定向到另一个页面。
如果您在登录后需要ApplicationUser
,请使用_userManager.FindByNameAsync(username)
。