Compartir vía


Transformaciones de notificaciones de entero

En este artículo se proporcionan ejemplos de uso de las transformaciones de notificaciones de enteros del esquema Identity Experience Framework en Azure Active Directory B2C (Azure AD B2C). Para más información, vea ClaimsTransformations.

AdjustNumber

Aumenta o disminuye una notificación numérica y devuelve una nueva notificación. Consulte la demo en vivo de esta transformación de notificaciones.

Elemento TransformationClaimType Tipo de datos Notas
InputClaim inputClaim int Tipo de notificación, que contiene el número que se va a aumentar o disminuir. Si el valor de la notificación inputClaim es NULL, se usa el valor predeterminado de 0.
InputParameter Operador string Valores posibles: INCREMENT (opción predeterminada) o DECREMENT.
OutputClaim outputClaim int El tipo de notificación que se genera después de que se haya invocado esta transformación de notificaciones.

Ejemplo de AdjustNumber

Use esta transformación de notificación para aumentar o disminuir un valor de notificación numérico. La siguiente transformación de notificación aumenta un valor numérico de notificación.

<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>
  • Notificaciones de entrada:
    • inputClaim: 1
  • Parámetros de entrada:
    • Operador: INCREMENT
  • Notificaciones de salida:
    • outputClaim: 2

Ejemplo de AdjustNumber con valor NULL

Si la notificación de entrada es NULL, la notificación de salida será una.

  • Notificaciones de entrada:
    • inputClaim: NULL
  • Parámetros de entrada:
    • Operador: INCREMENT
  • Notificaciones de salida:
    • outputClaim: 1

AssertNumber

Determina si una notificación numérica es mayor, menor, igual o no igual que un número. Consulte la demo en vivo de esta transformación de notificaciones.

Elemento TransformationClaimType Tipo de datos Notas
InputClaim inputClaim int Primera notificación numérica que se va a comparar si es mayor, menor, igual o no igual que el segundo número. Un valor nulo inicia una excepción.
InputParameter CompareToValue int Segundo número que se va a comparar si es mayor, menor, igual o no igual que el primer número.
InputParameter Operador string Valores posibles: LessThan, GreaterThan, GreaterThanOrEqual, LessThanOrEqual, Equal y NotEqual.
InputParameter throwError boolean Especifica si esta aserción debe producir un error si el resultado de la comparación es true. Valores posibles: true (opción predeterminada) o false.
 
Cuando se establece en true (modo de aserción) y el resultado de la comparación es true, se producirá una excepción. Cuando se establece en false (modo de evaluación), el resultado es un nuevo tipo de notificación booleana con un valor de true o false.
OutputClaim outputClaim boolean Si ThrowError se establece en false, esta notificación de salida contiene true, o false según el resultado de la comparación.

Modo de aserción

Cuando el parámetro de entrada throwError es true (valor predeterminado), la transformación de notificaciones AssertNumber siempre se ejecuta desde un perfil técnico de validación llamado por un perfil técnico autofirmado.

Los metadatos de un perfil técnico autoafirmado AssertNumberError controlan el mensaje de error que el perfil técnico presenta al usuario. Los mensajes de error se pueden localizar.

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

Para obtener más información sobre cómo llamar a la transformación de notificaciones en un modo de aserción, vea las transformaciones de notificaciones AssertStringClaimsAreEqual, AssertBooleanClaimIsEqualToValue y AssertDateTimeIsGreaterThan.

Ejemplo de AssertNumber

En el ejemplo siguiente se impone que el número de intentos es mayor que cinco. La transformación de notificaciones produce un error según el resultado de la comparación.

<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>
  • Notificaciones de entrada:
    • inputClaim: 10
  • Parámetros de entrada:
    • Operador: GreaterThan
    • CompareToValue: 5
    • throwError: true
  • Resultado: aparece un error

Ejemplo del modo de evaluación AssertNumber

En el ejemplo siguiente se evalúa si el número de intentos es mayor que cinco. La notificación de salida contiene un valor booleano según el resultado de la comparación. La transformación de notificaciones no producirá un error.

<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>
  • Notificaciones de entrada:
    • inputClaim: 10
  • Parámetros de entrada:
    • Operador: GreaterThan
    • CompareToValue: 5
    • throwError: false
  • Notificaciones de salida:
    • outputClaim: true

ConvertNumberToStringClaim

Convierte a un tipo de datos Long en un tipo de datos String. Consulte la demo en vivo de esta transformación de notificaciones.

Elemento TransformationClaimType Tipo de datos Notas
InputClaim inputClaim long Tipo de notificación que se va a convertir en cadena.
OutputClaim outputClaim string El tipo de notificación que se genera después de que se haya invocado esta transformación de notificaciones.

Ejemplo de ConvertNumberToStringClaim

En este ejemplo, la notificación numericUserId con un tipo de valor de Long se convierte en una notificación UserId con un tipo de valor de String.

<ClaimsTransformation Id="CreateUserId" TransformationMethod="ConvertNumberToStringClaim">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="numericUserId" TransformationClaimType="inputClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="UserId" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Notificaciones de entrada:
    • inputClaim: 12334 (Long)
  • Notificaciones de salida:
    • outputClaim: "12334" (cadena)

Pasos siguientes