重要
自 2025 年 5 月 1 日起,Azure AD B2C 将不再可供新客户购买。 在我们的常见问题解答中了解详细信息。
本文提供了有关在 Azure Active Directory B2C(Azure AD B2C)中使用标识体验框架架构的布尔声明转换的示例。 有关详细信息,请参阅声明转换。
AndClaims
计算两个 And 布尔输入声明的作,并使用作的结果设置输出声明。 查看此声明转换的实时演示。
| 元素 | TransformationClaimType | 数据类型 | 注释 | 
|---|---|---|---|
| InputClaim | inputClaim1 | 布尔 | 要评估的第一个声明。 | 
| InputClaim | inputClaim2 | 布尔 | 要评估的第二个声明。 | 
| OutputClaim | outputClaim | 布尔 | 调用此声明转换后生成的声明(true 或 false)。 | 
AndClaims 的示例
以下声明转换演示如何 And 两个布尔声明: isEmailNotExist和 isSocialAccount。 输出声明presentEmailSelfAsserted设置为true两个输入声明的值。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 | 布尔 | 要检查的声明。 | 
| InputParameter | valueToCompareTo | 布尔 | 要比较的值(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 | 布尔 | 要比较的声明。 | 
| InputParameter | valueToCompareTo | 布尔 | 要比较的值(true 或 false)。 | 
| OutputClaim | compareResult | 布尔 | 调用此声明转换后生成的声明。 | 
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 | 布尔 | 要作的声明。 | 
| OutputClaim | outputClaim | 布尔 | 调用此声明转换后生成的声明(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 | 布尔 | 要评估的第一个声明。 | 
| InputClaim | inputClaim2 | 布尔 | 要评估的第二个声明。 | 
| OutputClaim | outputClaim | 布尔 | 调用此声明转换后生成的声明(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 存储库中查看更多声明转换示例