布林值宣告轉換
本文提供在 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 範例
下列宣告轉換示範如何執行兩個布林值宣告 isEmailNotExist
和 isSocialAccount
的 And
。 如果這兩個輸入宣告的值均為 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 存放庫中,尋找更多宣告轉換範例