整数声明转换
本文提供了有关在 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
- 输入参数:
- Operator:INCREMENT
- 输出声明:
- outputClaim:2
具有 null 值的 AdjustNumber 示例
如果输入声明为 null,则输出声明将为 1。
- 输入声明:
- inputClaim:NULL
- 输入参数:
- Operator:INCREMENT
- 输出声明:
- outputClaim:1
AssertNumber
确定数值声明大于、小于、等于还是不等于某一数字。 查看此声明转换的实时演示。
元素 | TransformationClaimType | 数据类型 | 说明 |
---|---|---|---|
InputClaim | inputClaim | int | 第一个数值声明,用于比较它大于、小于、等于还是不等于第二个数字。 Null 值会引发异常。 |
InputParameter | CompareToValue | int | 第二个数字,用于比较它大于、小于、等于还是不等于第一个数字。 |
InputParameter | 运算符 | 字符串 | 可能的值:LessThan 、GreaterThan 、GreaterThanOrEqual 、LessThanOrEqual 、Equal 、NotEqual 。 |
InputParameter | throwError | boolean | 指定比较结果为 true 时,此断言是否应引发错误。 可能的值为 true (默认)或 false 。 如果设置为 true (断言模式)并且比较结果为 true ,则会引发异常。 如果设置为 false (计算模式),结果为一个新的布尔声明类型,值为 true 或 false 。 |
OutputClaim | outputClaim | boolean | 如果 ThrowError 设置为 false ,根据比较结果,此输出声明将包含 true 或 false 。 |
断言模式
当 throwError
输入参数为 true
(默认)时,AssertNumber 声明转换始终从验证技术配置文件执行,该文件由自断言技术配置文件调用。
AssertNumberError 自断言技术配置文件元数据控制技术配置文件向用户呈现的错误消息。 可以将错误消息本地化。
<TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Email">
<Metadata>
<Item Key="AssertNumberError">You've reached the maximum logon attempts</Item>
</Metadata>
...
</TechnicalProfile>
有关如何在断言模式下调用声明转换的详细信息,请参阅 AssertStringClaimsAreEqual、AssertBooleanClaimIsEqualToValue 和 AssertDateTimeIsGreaterThan 声明转换。
AssertNumber 示例
以下示例断言尝试次数超过五次。 声明转换根据比较结果引发错误。
<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 求值模式示例
以下示例计算尝试次数是否超过五次。 根据比较结果,输出声明包含一个布尔值。 声明转换不会引发错误。
<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
将 long 数据类型转换为字符串数据类型。 查看此声明转换的实时演示。
元素 | TransformationClaimType | 数据类型 | 说明 |
---|---|---|---|
InputClaim | inputClaim | long | 要转换为字符串的声明类型。 |
OutputClaim | outputClaim | 字符串 | 调用此声明转换后生成的声明类型。 |
ConvertNumberToStringClaim 示例
在此示例中,值类型为 long 的 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)
后续步骤
- 在 Azure AD B2C 社区 GitHub 存储库中查看更多声明转换示例