我在从 MembershipReboot 和 Thinktecture IdentityServer 中提取 UserAccount 属性时遇到问题。我在这里使用示例存储库启动并运行:https ://github.com/identityserver/IdentityServer3.MembershipReboot
当我在隐式授予流程中请求“openid 配置文件”范围时,我缺少 id_token 中的许多用户帐户字段,例如“given_name、middle_name”等以及来自 userinfo 端点的响应。我理解这是因为它们需要在 GetClaimsFromAccount 函数中进行分配。
我可以看到 requestedClaims 进入了 MembershipRebootUserService 类中的 GetProfileDataAsync() 函数,如果我将鼠标悬停在 GetClaimsFromAccount 中的 TAccount 实例上,我可以看到出现在 CustomUser 动态代理中的 Firstname、Lastname 等属性,但我不能我的生活如何访问它们并将它们复制到索赔集合中?
更多信息:
我怀疑问题出在这一行:
claims.AddRange(userAccountService.MapClaims(account));
看起来这应该将用户帐户属性转换为声明,但我没有得到任何回报。