Поделиться через


Преобразования целочисленных утверждений

В этой статье приведены примеры использования преобразований целочисленных утверждений для схемы инфраструктуры процедур идентификации в Azure Active Directory B2C (Azure AD B2C). Дополнительные сведения см. в статье о преобразовании утверждений.

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
  • Входные параметры:
    • Оператор: INCREMENT
  • Исходящие утверждения:
    • outputClaim: 2

Пример AdjustNumber со значением NULL

Если входное утверждение имеет значение NULL, выходное утверждение будет одним.

  • Входящие утверждения:
    • inputClaim: NULL
  • Входные параметры:
    • Оператор: INCREMENT
  • Исходящие утверждения:
    • outputClaim: 1

AssertNumber

Определяет отношение числового утверждения к числу (больше, меньше, равно или не равно). Ознакомьтесь с преобразованием этих утверждений в демонстрации в реальном времени.

Элемент TransformationClaimType Тип данных Примечания
InputClaim InputClaim INT Первое числовое утверждение, сравниваемое (больше, меньше, равно, не равно) с указанным вторым числом. При значении NULL возникает исключение.
InputParameter CompareToValue INT Второе число, сравниваемое (больше, меньше, равно, не равно) с указанным первым числом.
InputParameter Оператор строка Возможные значения: LessThan, GreaterThan, GreaterThanOrEqual, LessThanOrEqual, Equal, NotEqual.
InputParameter throwError Логическое Указывает, должно ли данное утверждение вызывать ошибку, если результат сравнения — true. Возможные значения: true (по умолчанию) или false.
 
Если задано значение true (режим утверждения), а результатом сравнения является true, возникает исключение. Если задано значение false (режим оценки), результатом является новое утверждение логического типа со значением true или false.
outputClaim outputClaim Логическое Если параметр 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
  • Входные параметры:
    • Оператор: GreaterThan
    • CompareToValue: 5
    • throwError: true
  • Результат: возникла ошибка.

Пример режима вычисления 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="false" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="attemptsCountExceeded" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Входящие утверждения:
    • inputClaim: +10
  • Входные параметры:
    • Оператор: GreaterThan
    • CompareToValue: 5
    • throwError: false
  • Исходящие утверждения:
    • outputClaim: true.

ConvertNumberToStringClaim

Преобразует тип данных "длинное целое" в тип данных "строка". Ознакомьтесь с преобразованием этих утверждений в демонстрации в реальном времени.

Элемент TransformationClaimType Тип данных Примечания
InputClaim InputClaim long Тип утверждения для преобразования в строку.
outputClaim outputClaim строка Тип утверждения, который создается после вызова этого преобразования утверждений.

Пример ConvertNumberToStringClaim

В этом примере утверждение numericUserId с типом значения "длинное целое" преобразуется в утверждение UserId с типом значения "строка".

<ClaimsTransformation Id="CreateUserId" TransformationMethod="ConvertNumberToStringClaim">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="numericUserId" TransformationClaimType="inputClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="UserId" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Входящие утверждения:
    • inputClaim: 12334 (длинное целое)
  • Исходящие утверждения:
    • outputClaim: "12334" (строка)

Дальнейшие действия