首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MembershipReboot与IdentityServer v3

MembershipReboot与IdentityServer v3
EN

Stack Overflow用户
提问于 2015-06-02 09:45:09
回答 1查看 1.3K关注 0票数 0

我在结合Thinktecture IdentityServer从MembershipReboot中提取MembershipReboot属性时遇到了困难。我已经在这里使用示例repo启动和运行:https://github.com/identityserver/IdentityServer3.MembershipReboot

当我在隐式格兰特流中请求"openid配置文件“范围时,我丢失了许多用户帐户字段,如"given_name,middle_name”等来自id_token和来自userinfo端点的响应。我理解这是因为需要在GetClaimsFromAccount函数中分配它们。

我可以看到requestedClaims进入了MembershipRebootUserService类中的GetProfileDataAsync()函数,如果我悬停在GetClaimsFromAccount中的TAccount实例上,我可以看到出现在CustomUser动态代理中的Firstname、Lastname等属性,但在我的一生中,我无法解决如何访问它们并将它们复制到索赔集合中?

更多信息:

我怀疑问题就在于这句话:

代码语言:javascript
复制
 claims.AddRange(userAccountService.MapClaims(account));

看起来,这应该是将用户帐户属性转换为索赔,但我没有得到任何回报。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-17 11:48:55

据我所知,它的工作原理是向Scope对象中添加一个选项,以返回用户的所有声明。IncludeAllClaimsForUser是关键属性。

例如:

代码语言:javascript
复制
new Scope
{
  Enabled = true,
  Name = "roles",
  Type = ScopeType.Identity,
  IncludeAllClaimsForUser = true,
  Claims = new List<ScopeClaim>
  {
    new ScopeClaim("role")
  }
}

我的请求还包括role属性。这收回了用户对我的所有要求。我的例子是Implicit流。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30592595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档