Azure AD B2C自定义策略 - 仅使用String.Format

时间:2018-06-18 15:44:01

标签: azure azure-active-directory azure-ad-b2c

在Azure B2C自定义策略中,我想从objectId(GUID)claimtype中删除连字符“ - ”,并将其分配给另一个声明类型。

例如:

输入:e8023a66-30ed-4e31-a17e-c013081704a0 Ouptut:e8023a6630ed4e31a17ec013081704a0

我目前尝试了以下内容:

<InputParameter Id="stringFormat" DataType="string" Value="00000000000000000000000000000000,{0}" />
<InputParameter Id="stringFormat" DataType="string" Value="{0:################################}" />
<InputParameter Id="stringFormat" DataType="string" Value="{0:#}" /> 

我在ClaimsTransformation中使用FormatStringClaim transformationmethod来实现相同的功能,但是使用连字符将值分配给目标声明类型。

请你帮我删除连字符?

注意: 我不能使用任何其他字符串操作,如替换或拆分,因为Azure AD仅支持String.Format方法。

1 个答案:

答案 0 :(得分:0)

  

我正在ClaimsTransformation中使用FormatStringClaim转换方法来实现相同的功能,但是该值正使用连字符分配给目标声明类型。

听起来您配置了“索赔转换”并已将原始GUID分配为输入和输出索赔。您需要使用要存储修改后的GUID的声明来更新ClaimTypeReferenceId。

示例:

<ClaimsTransformation Id="RemoveHash" TransformationMethod="FormatStringClaim">
    <InputClaims>
        <InputClaim ClaimTypeReferenceId="originalGuid" TransformationClaimType="inputClaim" />
    </InputClaims>
    <InputParameters>
        <InputParameter Id="stringFormat" DataType="string" Value="{0}" />
    </InputParameters>
    <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="modifiedGuid" TransformationClaimType="outputClaim" />
    </OutputClaims>
</ClaimsTransformation>