如何使用 B2C 自定义用户流程使用电子邮件填充显示名称

How to populate Display Name with Email using B2C custom user flow

我正在实施基于 Microsoft's guide 的本地用户 B2C 自定义用户流策略。

我的自定义 signup/signin 政策有效,但我想修改它,以便 B2C 中的显示名称字段自动填充用户的电子邮件地址。

目前我已禁用从注册表单中删除显示名称声明,这意味着它会填充“未知”。

我使用 provided samples 作为我的政策的基础,所以如果有人可以提供一个示例来说明如何修改这些以支持使用用户电子邮件自动填充显示名称,那将是完美的。

听起来您已经将其作为输出声明从 LocalAccountSignUpWithLogonEmail 中删除了。

在同一步骤中,您应该能够添加 OutputClaimsTransformation with TransformationMethod="CopyClaim",输入为“email”,输出为“displayName”。

声明转换如下所示:

<ClaimsTransformation Id="CopyEmailAddressToDisplayName" TransformationMethod="CopyClaim">
    <InputClaims>
        <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="inputClaim"/>
    </InputClaims>
    <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="displayName" TransformationClaimType="outputClaim"/>
    </OutputClaims>
</ClaimsTransformation>

要从技术资料中调用它,请将此部分添加到输出声明的正下方。

<OutputClaimsTransformations>
    <OutputClaimsTransformation ReferenceId="CopyEmailAddressToDisplayName" />
</OutputClaimsTransformations>

参考:https://docs.microsoft.com/en-us/azure/active-directory-b2c/general-transformations

注意:如果您要更改这些,我建议将技术配置文件复制到 TrustFrameworkExtensions 文件,以避免混淆基础中的内容和您自定义的内容。