我有一个 IdentityServer 设置只有一个混合流客户端,它为AllowedScopes设置“all_claims”。在另一台计算机上,我有一个连接到 IdSvr 以登录用户的 MVC 应用程序。它还为 IdMgr 设置绑定。我可以毫无问题地登录到主应用程序和 IdMgr。同样在用户登录后的主应用程序中,我按预期获得了所有声明,但在 IdMgr 中没有。/admin
我正在尝试根据声明在 IdMgr 中添加一些自定义逻辑。但是当我进入Thread.CurrentPrincipal
任何 IdMgr 控制器时,它是空的!我得到的只是一个只有角色声明的ClaimsPrincipal对象。它还有一个具有以下属性的ClaimsIdentity对象:
AuthenticationType: "Bearer"
IsAuthenticated: true
NameClaimType: "name"
RoleClaimType: "role"
其他一切都是空的。甚至没有用户的名称或 ID。为什么会这样,我怎样才能在 IdentityManager 中获得所有声明?
要重现这一点,只需检查System.Threading.Thread.CurrentPrincipal
.GetUsersAsync
UsersController
GitHub 上此问题的链接