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 solicitando que o usuário insira 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:
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 | Obrigatório | Descrição |
---|---|---|
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 devolvida à 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>