你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
布尔型声明转换
本文提供了在 Azure Active Directory B2C (Azure AD B2C) 中使用 Identity Experience Framework 架构的布尔型声明转换的示例。 有关详细信息,请参阅声明转换。
AndClaims
执行两个布尔型输入声明的 And
运算并使用运算结果设置输出声明。 查看此声明转换的实时演示。
元素 | TransformationClaimType | 数据类型 | 说明 |
---|---|---|---|
InputClaim | inputClaim1 | boolean | 要评估的第一个声明。 |
InputClaim | inputClaim2 | boolean | 要评估的第二个声明。 |
OutputClaim | outputClaim | boolean | 调用此声明转换后将生成的声明(true 或 false)。 |
AndClaims 示例
以下声明转换演示如何执行两个布尔型声明的 And
运算:isEmailNotExist
和 isSocialAccount
。 如果这两个输入声明的值为 true
,则输出声明 presentEmailSelfAsserted
设置为 true
。
<ClaimsTransformation Id="CheckWhetherEmailBePresented" TransformationMethod="AndClaims">
<InputClaims>
<InputClaim ClaimTypeReferenceId="isEmailNotExist" TransformationClaimType="inputClaim1" />
<InputClaim ClaimTypeReferenceId="isSocialAccount" TransformationClaimType="inputClaim2" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="presentEmailSelfAsserted" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- 输入声明:
- inputClaim1: true
- inputClaim2: false
- 输出声明:
- outputClaim: false
AssertBooleanClaimIsEqualToValue
检查两个声明的布尔值是否相等,如果不等,则引发异常。 查看此声明转换的实时演示。
元素 | TransformationClaimType | 数据类型 | 说明 |
---|---|---|---|
inputClaim | inputClaim | boolean | 要检查的声明。 |
InputParameter | valueToCompareTo | boolean | 要比较的值(true 或 false)。 |
AssertBooleanClaimIsEqualToValue 声明转换始终从验证技术配置文件执行,该文件由自断言技术配置文件调用。 UserMessageIfClaimsTransformationBooleanValueIsNotEqual 自断言技术配置文件元数据控制向用户显示的技术配置文件。 可以将错误消息本地化。
AssertBooleanClaimIsEqualToValue 示例
以下声明转换演示如何检查带 true
值的布尔型声明的值。 如果 accountEnabled
声明的值为 false,则会引发错误消息。
<ClaimsTransformation Id="AssertAccountEnabledIsTrue" TransformationMethod="AssertBooleanClaimIsEqualToValue">
<InputClaims>
<InputClaim ClaimTypeReferenceId="accountEnabled" TransformationClaimType="inputClaim" />
</InputClaims>
<InputParameters>
<InputParameter Id="valueToCompareTo" DataType="boolean" Value="true" />
</InputParameters>
</ClaimsTransformation>
- 输入声明:
- inputClaim: false
- valueToCompareTo: true
- 结果:引发错误
调用 AssertBooleanClaimIsEqualToValue 声明转换
以下 Example-AssertBoolean
验证技术配置文件会调用 AssertAccountEnabledIsTrue
声明转换。
<TechnicalProfile Id="Example-AssertBoolean">
<DisplayName>Unit test</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="ComparisonResult" DefaultValue="false" />
</OutputClaims>
<OutputClaimsTransformations>
<OutputClaimsTransformation ReferenceId="AssertAccountEnabledIsTrue" />
</OutputClaimsTransformations>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>
自断言技术配置文件调用验证 Example-AssertBoolean
技术配置文件。
<TechnicalProfile Id="SelfAsserted-AssertDateTimeIsGreaterThan">
<DisplayName>Example</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="ContentDefinitionReferenceId">api.selfasserted</Item>
<Item Key="UserMessageIfClaimsTransformationBooleanValueIsNotEqual">Custom error message if account is disabled.</Item>
</Metadata>
...
<ValidationTechnicalProfiles>
<ValidationTechnicalProfile ReferenceId="Example-AssertBoolean" />
</ValidationTechnicalProfiles>
</TechnicalProfile>
CompareBooleanClaimToValue
检查声明的布尔值是等于 true
还是 false
,并返回压缩结果。 查看此声明转换的实时演示。
元素 | TransformationClaimType | 数据类型 | 说明 |
---|---|---|---|
InputClaim | inputClaim | boolean | 要比较的声明。 |
InputParameter | valueToCompareTo | boolean | 要比较的值(true 或 false)。 |
OutputClaim | compareResult | boolean | 调用此声明转换后生成的声明。 |
CompareBooleanClaimToValue 示例
以下声明转换演示如何检查带 true
值的布尔型声明的值。 如果 IsAgeOver21Years
声明的值等于 true
,则声明转换返回 true
,否则返回 false
。
<ClaimsTransformation Id="AssertAccountEnabled" TransformationMethod="CompareBooleanClaimToValue">
<InputClaims>
<InputClaim ClaimTypeReferenceId="IsAgeOver21Years" TransformationClaimType="inputClaim" />
</InputClaims>
<InputParameters>
<InputParameter Id="valueToCompareTo" DataType="boolean" Value="true" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="accountEnabled" TransformationClaimType="compareResult"/>
</OutputClaims>
</ClaimsTransformation>
- 输入声明:
- inputClaim: false
- 输入参数:
- valueToCompareTo: true
- 输出声明:
- compareResult: false
NotClaims
执行布尔型输入声明的 Not
运算并使用运算结果设置输出声明。 查看此声明转换的实时演示。
元素 | TransformationClaimType | 数据类型 | 说明 |
---|---|---|---|
InputClaim | inputClaim | boolean | 要运算的声明。 |
OutputClaim | outputClaim | boolean | 调用此声明转换后生成的声明(true 或 false)。 |
NotClaims 示例
以下声明转换演示了如何对声明执行逻辑否定。
<ClaimsTransformation Id="CheckWhetherEmailBePresented" TransformationMethod="NotClaims">
<InputClaims>
<InputClaim ClaimTypeReferenceId="userExists" TransformationClaimType="inputClaim" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="userExists" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- 输入声明:
- inputClaim: false
- 输出声明:
- outputClaim: true
OrClaims
执行两个布尔型声明的 Or
并使用运算结果设置输出声明。 查看此声明转换的实时演示。
元素 | TransformationClaimType | 数据类型 | 说明 |
---|---|---|---|
InputClaim | inputClaim1 | boolean | 要评估的第一个声明。 |
InputClaim | inputClaim2 | boolean | 要评估的第二个声明。 |
OutputClaim | outputClaim | boolean | 调用此声明转换后将生成的声明(true 或 false)。 |
OrClaims 示例
以下声明转换演示如何执行两个布尔型说明的 Or
运算。
<ClaimsTransformation Id="CheckWhetherEmailBePresented" TransformationMethod="OrClaims">
<InputClaims>
<InputClaim ClaimTypeReferenceId="isLastTOSAcceptedNotExists" TransformationClaimType="inputClaim1" />
<InputClaim ClaimTypeReferenceId="isLastTOSAcceptedGreaterThanNow" TransformationClaimType="inputClaim2" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="presentTOSSelfAsserted" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- 输入声明:
- inputClaim1: true
- inputClaim2: false
- 输出声明:
- outputClaim: true
后续步骤
- 在 Azure AD B2C 社区 GitHub 存储库中查看更多声明转换示例