首页 > 解决方案 > 具有自定义 UserManager 的 ClaimsPrincipal 在剃须刀页面中不起作用

问题描述

我有一个包含控制器和剃须刀页面的 asp.net 项目。Asp.net Identity 使用 razor pages 创建自己的区域,默认使用脚手架。

问题在登录后开始,在控制器中,我可以使用User关键字查看当前用户的声明,如 ID、用户名、电子邮件.. 没有问题。当我在身份页面中调用User关键字时,它内部带有 0 个声明并await userManager.GetUserAsync(User)返回null

我正在使用内置的登录管理器。

我错过了什么吗?

更新:使用 ClaimsPrincipal 的配置文件页面,当我单击设置身份验证器应用程序链接时,它带有 0 个声明,如下图所示。 用户关键字展开

它以前可以工作,一旦我将 Authenticator 应用程序添加到我的帐户中并将其删除,然后开始出现此问题。

标签: asp.net-core-5.0

解决方案


当启用 2 因素身份验证以及使用 2fa 登录并检查记住此浏览器并从您的帐户中删除 2fa 时,就会发生这种情况。清除 2FA cookie 可解决问题

https://github.com/dotnet/aspnetcore/issues/5817#issuecomment-491818987


推荐阅读