整數宣告轉換
本文會提供數個使用範例,介紹 Azure Active Directory B2C (Azure AD B2C)中使用 Identity Experience Framework 結構描述的整數宣告轉換。 如需詳細資訊,請參閱 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 (評估模式) 時,結果會是新的 boolean 宣告型別,其值為 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
- 輸入參數:
- Operator: GreaterThan
- CompareToValue: 5
- throwError: true
- 結果:擲回錯誤
AssertNumber 評估模式的範例
下列範例會評估嘗試次數是否超過 5 次。 輸出宣告包含根據比較結果的 boolean 值。 宣告轉換將不會擲回錯誤。
<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
- 輸入參數:
- Operator: GreaterThan
- CompareToValue: 5
- throwError: false
- 輸出宣告:
- outputClaim:true
ConvertNumberToStringClaim
將 Lng 資料類型轉換為字串資料類型。 查看此宣告轉換的即時示範。
元素 | TransformationClaimType | 資料類型 | 注意 |
---|---|---|---|
InputClaim | inputClaim | long | 要轉換為字串的宣告型別。 |
OutputClaim | outputClaim | 字串 | 叫用此宣告轉換之後所產生的宣告型別。 |
ConvertNumberToStringClaim 的範例
在此範例中,值類型為 Long 的 numericUserId
宣告會轉換為值類型為 String (字串) 的 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 存放庫中,尋找更多宣告轉換範例