authentication - 身份框架登录后获取应用程序用户
问题描述
我使用自定义类使用身份框架自动登录用户,然后我使用 ApplicationUser 获取多个信息,但现在,登录成功时 ApplicationUser 为空,这是我的代码:
_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)
.
推荐阅读
- java - 时区公式
- powerbi - 如何从表格中获取最小和最大日期?
- ruby-on-rails - 不正确地访问参数
- scala - 使用运行时配置使参数化的 ScalaCache 通用
- ios - 如何在 inputView 中设置默认日期值
- database - 如何处理没有业务密钥的数据仓库中心?
- java - 如何在 Redis 中存储 Tomcat 会话
- node.js - 在我的整个 express 应用上使用 Multer 中间件有什么缺点吗?
- amazon-web-services - 我可以创建不引用特定用户的 Cognito 兼容 JWT 吗?
- android - 在不取消导航的情况下使用 Intent 切换到 Android 上的 Google 地图