在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方法。
答案 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>