Share via


整數宣告轉換

本文會提供數個使用範例,介紹 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 運算子 字串 可能的值:LessThanGreaterThanGreaterThanOrEqualLessThanOrEqualEqualNotEqual
InputParameter throwError boolean 詳細指明當比較結果為 true 時,此判斷提示陳述式是否應該擲回錯誤。 可能的值:true (預設) 或 false
 
當設定為 true (判斷提示模式),而且比較結果為 true 時,將會擲回例外狀況。 當設定為 false (評估模式) 時,結果會是新的 boolean 宣告型別,其值為 truefalse
OutputClaim outputClaim boolean 如果 ThrowError 設定為 false,則此輸出宣告會根據比較結果含有 truefalse

判斷提示模式

throwError 輸入參數設定為 true (預設) 時,AssertNumber 宣告轉換一律會從由自我判斷技術設定檔呼叫的驗證技術設定檔執行。

AssertNumberError 自我判斷技術設定檔中繼資料會控制技術設定檔要呈現給使用者的錯誤訊息。 錯誤訊息可以當地語系化

<TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Email">
  <Metadata>
    <Item Key="AssertNumberError">You've reached the maximum logon attempts</Item>
  </Metadata>
  ...
</TechnicalProfile>

如需關於如何在判斷提示模式中呼叫宣告轉換的詳細資訊,請參閱 AssertStringClaimsAreEqualAssertBooleanClaimIsEqualToValueAssertDateTimeIsGreaterThan 宣告轉換。

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)

下一步