你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

整数声明转换

重要

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

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

调整编号

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

元素 TransformationClaimType 数据类型 注释
InputClaim (输入声明) inputClaim 整数 (int) 声明类型,其中包含要增加或减少的数字。 inputClaim如果声明值为 null,则使用默认值 0。
InputParameter (输入参数) 操作员 字符串 可能的值为 INCREMENT(默认)或 DECREMENT
输出声明 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

断言编号

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

元素 TransformationClaimType 数据类型 注释
InputClaim (输入声明) inputClaim 整数 (int) 要比较的第一个数字声明是大于、小于、等于还是不等于第二个数字。 Null 值会引发异常。
InputParameter (输入参数) CompareToValue (比较值) 整数 (int) 要比较的第二个数字是大于、小于、等于还是不等于第一个数字。
InputParameter (输入参数) 操作员 字符串 可能的值:LessThanGreaterThanGreaterThanOrEqualLessThanOrEqualEqualNotEqual
InputParameter (输入参数) throwError 错误 布尔 指定如果比较结果为 true,则此断言是否应引发错误。 可能的值为 true(默认)或 false
 
如果设置为 true (断言模式),并且比较结果为 true,将引发异常。 false 设置为 (评估模式)时,结果为值为truefalse值的新布尔声明类型。
输出声明 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 字符串 调用此声明转换后生成的声明类型。

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)

后续步骤