整数声明转换

重要

自 2025 年 5 月 1 日起,Azure AD B2C 将不再可供新客户购买。 在我们的常见问题解答中了解详细信息

本文提供了有关在 Azure Active Directory B2C(Azure AD B2C)中使用标识体验框架架构的整数声明转换的示例。 有关详细信息,请参阅 ClaimsTransformations

AdjustNumber

增加或减少数字声明并返回新声明。 查看此声明转换的实时演示

元素 TransformationClaimType 数据类型 注释
InputClaim inputClaim 整数 (int) 声明类型,其中包含要增加或减少的数字。 inputClaim如果声明值为 null,则使用默认值 0。
InputParameter 操作员 字符串 可能的值为 INCREMENT(默认)或 DECREMENT
OutputClaim outputClaim 整数 (int) 调用此声明转换后生成的声明类型。

AdjustNumber 的示例

使用此声明转换可增加或减少数值声明值。 以下声明转换会增加数值声明值。

<ClaimsTransformation Id="UpdateSteps" TransformationMethod="AdjustNumber">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="steps" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="Operator" DataType="string" Value="INCREMENT" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="steps" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 输入声明:
    • inputClaim:1
  • 输入参数:
    • 运算符:INCREMENT
  • 输出声明:
    • outputClaim: 2

具有 null 值的 AdjustNumber 示例

如果输入声明为 null,则输出声明将是一个。

  • 输入声明:
    • inputClaim: NULL
  • 输入参数:
    • 运算符:INCREMENT
  • 输出声明:
    • outputClaim:1

AssertNumber

确定数字声明是大于、小于、等于还是不等于数字。 查看此声明转换的实时演示

元素 TransformationClaimType 数据类型 注释
InputClaim inputClaim 整数 (int) 要比较的第一个数字声明是大于、小于、等于还是不等于第二个数字。 Null 值会引发异常。
InputParameter CompareToValue 整数 (int) 要比较的第二个数字是大于、小于、等于还是不等于第一个数字。
InputParameter 操作员 字符串 可能的值:LessThan、、GreaterThanGreaterThanOrEqualLessThanOrEqualEqualNotEqual
InputParameter throwError 布尔 指定如果比较结果为 true,则此断言是否应引发错误。 可能的值为 true(默认)或 false
 
如果设置为 true (断言模式),并且比较结果为 true,将引发异常。 false 设置为 (评估模式)时,结果为值为truefalse值的新布尔声明类型。
OutputClaim outputClaim 布尔 如果 ThrowError 设置为 false,则此输出声明包含 truefalse 根据比较结果。

断言模式

输入参数为 throwError (默认值)时trueAssertNumber 声明转换始终从由自断言技术配置文件调用的验证技术配置文件执行。

AssertNumberError 自断言技术配置文件元数据控制技术配置文件向用户显示的错误消息。 可以将错误消息本地化

<TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Email">
  <Metadata>
    <Item Key="AssertNumberError">You've reached the maximum logon attempts</Item>
  </Metadata>
  ...
</TechnicalProfile>

有关如何在断言模式下调用声明转换的详细信息,请参阅 AssertStringClaimsAreEqualAssertBooleanClaimIsEqualToValueAssertDateTimeIsGreaterThan 声明转换。

AssertNumber 的示例

以下示例断言尝试次数超过 5 次。 声明转换根据比较结果引发错误。

<ClaimsTransformation Id="isOverLimit" TransformationMethod="AssertNumber">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="attempts" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="Operator" DataType="string" Value="GreaterThan" />
    <InputParameter Id="CompareToValue" DataType="int" Value="5" />
    <InputParameter Id="throwError" DataType="boolean" Value="true" />
  </InputParameters>
</ClaimsTransformation>
  • 输入声明:
    • inputClaim:10
  • 输入参数:
    • 运算符:GreaterThan
    • CompareToValue:5
    • throwError: true
  • 结果:引发错误

AssertNumber 评估模式的示例

以下示例评估尝试次数是否超过 5 次。 输出声明根据比较结果包含布尔值。 声明转换不会引发错误。

<ClaimsTransformation Id="isOverLimit" TransformationMethod="AssertNumber">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="attempts" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="Operator" DataType="string" Value="GreaterThan" />
    <InputParameter Id="CompareToValue" DataType="int" Value="5" />
    <InputParameter Id="throwError" DataType="boolean" Value="false" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="attemptsCountExceeded" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 输入声明:
    • inputClaim:10
  • 输入参数:
    • 运算符:GreaterThan
    • CompareToValue:5
    • throwError: false
  • 输出声明:
    • outputClaim: true

ConvertNumberToStringClaim

将长数据类型转换为字符串数据类型。 查看此声明转换的实时演示

元素 TransformationClaimType 数据类型 注释
InputClaim inputClaim 长整型 要转换为字符串的声明类型。
OutputClaim outputClaim 字符串 调用此声明转换后生成的声明类型。

ConvertNumberToStringClaim 的示例

在此示例中, numericUserId 具有长值类型的声明将 UserId 转换为具有值类型的字符串的声明。

<ClaimsTransformation Id="CreateUserId" TransformationMethod="ConvertNumberToStringClaim">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="numericUserId" TransformationClaimType="inputClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="UserId" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 输入声明:
    • inputClaim: 12334 (long)
  • 输出声明:
    • outputClaim: “12334” (string)

后续步骤