【问题标题】:How to populate an attribute from other attributes如何从其他属性填充属性
【发布时间】:2021-02-17 15:11:21
【问题描述】:

在我的注册屏幕上,我添加了 2 个内置字段:名字和姓氏。在用户 |所有用户 列表中,会出现一个名为“未知”的新用户。那是因为我没有添加“显示名称”属性。我不想让用户填写这个附加字段。是否可以将要在后端填充的显示名称设置为名字 + " " + 姓氏?

【问题讨论】:

  • 您使用的是自定义策略(身份体验框架)还是用户流?
  • @BradC。用户流。

标签: azure-ad-b2c


【解决方案1】:

我相信你的两个选择是:

  1. 为您的用户界面启用自定义 HTML/JavaScript,这将有效地隐藏 Display Name 字段,并分别组合 First NameLast Name

  2. 使用更复杂但功能更强大的身份体验框架并利用ClaimsTransformation

例子:

<ClaimsTransformation Id="Generate-DisplayName" TransformationMethod="FormatStringMultipleClaims">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="givenname" TransformationClaimType="inputClaim1"/>
    <InputClaim ClaimTypeReferenceId="surname" TransformationClaimType="inputClaim2"/>
  </InputClaims>
  <InputParameters>
    <InputParameter Id="stringFormat" DataType="string" Value="{0} {1}"/>
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="displayName" TransformationClaimType="outputClaim"/>
  </OutputClaims>
</ClaimsTransformation>

【讨论】:

  • 您好,我已经尝试了这个解决方案几个小时,但似乎没有正确保存 displayName。还有什么需要做的吗?我们有一个调用 API 的自定义用户旅程。会不会是这个原因?
  • @AnupMarwadi - 上面列出的两种解决方案中的哪一种有问题?我们需要查看自定义策略 XML 以便告诉您它是否影响了您的 displayName 属性的持久性。
  • 我会尽快添加要点!
  • 你好 Brad C. 这里是要点。需要注意的是,我们有自定义的用户旅程。我还尝试使用多种不同的组合来覆盖 AAD 策略,但似乎没有一个有效。任何帮助将不胜感激。在最重要的 XML 节点上添加了足够的 cmets。 gist.github.com/hypertrends/18b7743c873a189699d19624f5a97be1
  • @AnupMarwadi - 这是我快速整理的一个要点,它展示了非常基础的内容。这是一个自我声明的页面,分别收集名字和姓氏,然后使用ClaimsTransformation 技术配置文件来创建显示名称。您应该能够更改标题中的租户信息并自己运行它。 gist.github.com/BradCandell/35aa6fc365bcb2127f0c8e2c6eefa516
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-01
  • 1970-01-01
  • 2011-06-03
  • 1970-01-01
相关资源
最近更新 更多