首页 > 解决方案 > 身份框架登录后获取应用程序用户

问题描述

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

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

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

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

编辑
我已将代码移至可以访问“用户”的控制器,登录成功但 User.Identity.isAuthenticated 为 False

标签: authenticationasp.net-core-mvcasp.net-identity

解决方案


执行后,_signInManager.PasswordSignInAsync您需要根据您的请求设置 cookie。这意味着您需要先允许重定向到另一个页面,然后才能使用Context.User.

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


推荐阅读