Weryfikowanie ciągu wyzwania CAPTCHA przy użyciu kontrolki wyświetlania CAPTCHA
Użyj kontrolek wyświetlania CAPTCHA, aby wygenerować ciąg wyzwania CAPTCHA, a następnie zweryfikuj go, prosząc użytkownika o wprowadzenie tego, co widzą lub usłyszą. Aby wyświetlić kontrolkę wyświetlania CAPTCHA, odwołujesz się do niej z własnego profilu technicznego i musisz ustawić wartość metadanych własnego profilusetting.enableCaptchaChallenge
technicznego na true.
Zrzut ekranu przedstawia kontrolkę wyświetlania CAPTCHA wyświetlaną na stronie rejestracji:
Strona rejestracji jest ładowana za pomocą kontrolki wyświetlania CAPTCHA. Następnie użytkownik wprowadza znaki, które widzą lub usłyszą. Przycisk Wyślij kod weryfikacyjny wysyła kod weryfikacyjny do wiadomości e-mail użytkownika i nie jest elementem kontrolki wyświetlania CAPTCHA, ale powoduje zweryfikowanie ciągu wyzwania CAPTCHA.
Elementy kontrolki wyświetlania CAPTCHA
Ta tabela zawiera podsumowanie elementów, które zawiera kontrolka wyświetlania CAPTCHA.
Element | Wymagania | opis |
---|---|---|
UserInterfaceControlType | Tak | Wartość musi być captchaControl. |
InputClaims | Tak | Co najmniej jedno oświadczenie wymagane jako dane wejściowe w celu określenia typu wyzwania CAPTCHA i unikatowego zidentyfikowania wyzwania. |
DisplayClaims | Tak | Oświadczenia, które mają być wyświetlane użytkownikowi, takie jak kod wyzwania CAPTCHA, lub zbierane od użytkownika, takie jak dane wejściowe kodu przez użytkownika |
OutputClaim | Nie. | Każde oświadczenie, które ma zostać zwrócone do strony samozwańczej po zakończeniu procesu weryfikacji kodu CAPTCHA przez użytkownika. |
Akcje | Tak | Kontrolka wyświetlania CAPTCHA zawiera dwie akcje: GetChallenge i VerifyChallenge. Akcja GetChallenge generuje, a następnie wyświetla kod wyzwania CAPTCHA w interfejsie użytkownika. Akcja VerifyChallenge weryfikuje kod wyzwania CAPTCHA, który wprowadza użytkownik. |
Poniższy kod fragmentu kodu XML przedstawia przykład kontrolki wyświetlania 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>