Identity Framework登录后获取应用程序用户

时间:2018-05-18 07:56:50

标签: authentication asp.net-core-mvc asp.net-identity

我使用自定义类自动登录具有身份框架的用户然后我使用ApplicationUser获取多个信息但是现在,当登录成功时,ApplicationUser为空,这里是我的代码:

_signInManager.PasswordSignInAsync(username, pwd, RememberMe, lockoutOnFailure: false);
ApplicationUser = _userManager.GetUserAsync(_signInManager.Context.User).Result;

代码不在控制器中,而是在用于登录和用户管理的自定义类中,它昨天运行良好,但我无法理解为什么它现在不起作用。

' _signInManager'和' _userManager'是由构造函数中的依赖注入创建的。

修改
我已将代码移至控制器,我可以访问该控制器,用户",登录成功,但User.Identity.isAuthenticated为False

1 个答案:

答案 0 :(得分:1)

执行_signInManager.PasswordSignInAsync后,您需要在请求中设置Cookie。这意味着在您使用Context.User之前,您需要允许重定向到另一个页面。

如果您在登录后需要ApplicationUser,请使用_userManager.FindByNameAsync(username)