Comprobación de la cadena de desafío CAPTCHA mediante el control de visualización CAPTCHA

Use controles de visualización CAPTCHA para generar una cadena de desafío CAPTCHA y, a continuación, compruébalo pidiendo al usuario que escriba lo que ve o escucha. Para mostrar un control de visualización CAPTCHA, haga referencia a él desde un perfil técnico autoafirmado y debe establecer el valor de metadatos del setting.enableCaptchaChallenge perfil técnico autoafirmado en true.

En la captura de pantalla se muestra el control de visualización CAPTCHA que se muestra en una página de registro:

Screenshot of CAPTCHA as it appears in the sign-up page.

La página de registro se carga con el control de visualización CAPTCHA. A continuación, el usuario introduce los caracteres que ve o escucha. El botón Enviar código de verificación envía un código de verificación al correo electrónico del usuario y no es el elemento de control de visualización CAPTCHA, pero hace que se compruebe la cadena de desafío CAPTCHA.

Elementos de control de visualización CAPTCHA

En esta tabla se resumen los elementos que contiene un control de visualización CAPTCHA.

Elemento Obligatorio Descripción
UserInterfaceControlType El valor debe ser CaptchaControl.
InputClaims Una o varias notificaciones necesarias como entrada para especificar el tipo de desafío CAPTCHA y para identificar de forma única el desafío.
DisplayClaims Las notificaciones que se muestran al usuario, como el código de desafío CAPTCHA, o que se recopilan del usuario, como la entrada de código por parte del usuario.
OutputClaim No Cualquier notificación que se devuelva a la página autoafirmada después de que el usuario complete el proceso de verificación de código CAPTCHA.
Acciones El control de visualización CAPTCHA contiene dos acciones, GetChallenge y VerifyChallenge.
La acción GetChallenge genera y, a continuación, muestra un código de desafío CAPTCHA en la interfaz de usuario.
La acción VerifyChallenge comprueba el código de desafío CAPTCHA que el usuario introduce.

En el siguiente código de fragmento XML se muestra un ejemplo del control de visualización CaptchaProvider:

<DisplayControls>
    ...
    <DisplayControl Id="captchaControlChallengeCode" UserInterfaceControlType="CaptchaControl" DisplayName="Help us beat the bots">
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="challengeType" />
        <InputClaim ClaimTypeReferenceId="challengeId" />
      </InputClaims>
    
      <DisplayClaims>
        <DisplayClaim ClaimTypeReferenceId="challengeType" ControlClaimType="ChallengeType" />
        <DisplayClaim ClaimTypeReferenceId="challengeId" ControlClaimType="ChallengeId" />
        <DisplayClaim ClaimTypeReferenceId="challengeString" ControlClaimType="ChallengeString" />
        <DisplayClaim ClaimTypeReferenceId="captchaEntered" ControlClaimType="CaptchaEntered" />
      </DisplayClaims>
    
      <Actions>
        <Action Id="GetChallenge">
          <ValidationClaimsExchange>
            <ValidationClaimsExchangeTechnicalProfile
              TechnicalProfileReferenceId="HIP-GetChallenge" />
          </ValidationClaimsExchange>
        </Action>
    
        <Action Id="VerifyChallenge">
          <ValidationClaimsExchange>
            <ValidationClaimsExchangeTechnicalProfile
              TechnicalProfileReferenceId="HIP-VerifyChallenge" />
          </ValidationClaimsExchange>
        </Action>
      </Actions>
    </DisplayControl>
    ...
</DisplayControls>

Pasos siguientes