Partilhar via


Verificar a cadeia de caracteres de desafio CAPTCHA usando o controle de exibição CAPTCHA

Use os controles de exibição CAPTCHA para gerar uma cadeia de caracteres de desafio CAPTCHA e, em seguida, verifique-a pedindo ao usuário para inserir o que vê ou ouve. Para exibir um controle de exibição CAPTCHA, faça referência a ele a partir de um perfil técnico autodeclarado e defina o valor de metadados do setting.enableCaptchaChallenge perfil técnico autodeclarado como true.

A captura de tela mostra o controle de exibição CAPTCHA mostrado em uma página de inscrição:

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

A página de inscrição é carregada com o controle de exibição CAPTCHA. Em seguida, o usuário insere os caracteres que vê ou ouve. O botão Enviar código de verificação envia um código de verificação para o e-mail do usuário e não é um elemento de controle de exibição CAPTCHA, mas faz com que a cadeia de caracteres de desafio CAPTCHA seja verificada.

Elementos de controle de exibição CAPTCHA

Esta tabela resume os elementos que um controle de exibição CAPTCHA contém.

Elemento Necessário Description
UserInterfaceControlType Sim O valor deve ser CaptchaControl.
InputClaims Sim Uma ou mais declarações necessárias como entrada para especificar o tipo de desafio CAPTCHA e identificar exclusivamente o desafio.
DisplayClaims Sim As declarações a serem mostradas ao usuário, como o código de desafio CAPTCHA, ou coletadas do usuário, como a entrada de código pelo usuário
OutputClaim Não Qualquer reivindicação a ser retornada à página autodeclarada depois que o usuário concluir o processo de verificação do código CAPTCHA.
Ações Sim O controle de exibição CAPTCHA contém duas ações, GetChallenge e VerifyChallenge.
A ação GetChallenge gera e, em seguida, exibe um código de desafio CAPTCHA na interface do usuário.
A ação VerifyChallenge verifica o código de desafio CAPTCHA inserido pelo usuário.

O código de trecho XML a seguir mostra um exemplo de controle de exibição 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>

Próximos passos