Проверка строки вызова CAPTCHA с помощью элемента управления отображением CAPTCHA
Используйте элементы управления отображения CAPTCHA для создания строки вызова CAPTCHA, а затем проверьте ее, попросите пользователя ввести то, что они видят или слышат. Чтобы отобразить элемент управления отображением CAPTCHA, вы ссылаетесь на него из самозаверяемого технического профиля, и необходимо задать для параметра метаданных самозаверяющегося технического профиляsetting.enableCaptchaChallenge
значение true.
На снимке экрана показан элемент управления отображения CAPTCHA, показанный на странице регистрации:
Страница регистрации загружается с помощью элемента управления отображения CAPTCHA. Затем пользователь вводит символы, которые они видят или слышат. Кнопка "Отправить код проверки" отправляет код проверки в сообщение электронной почты пользователя и не является элементом управления отображением CAPTCHA, но вызывает проверку строки запроса CAPTCHA.
Элементы элемента управления CAPTCHA для отображения
В этой таблице перечислены элементы, которые содержит элемент управления отображения CAPTCHA.
Элемент | Обязательное поле | Описание |
---|---|---|
UserInterfaceControlType | Да | Значение должно быть CaptchaControl. |
InputClaims | Да | Одно или несколько утверждений, необходимых в качестве входных данных, чтобы указать тип задачи CAPTCHA и однозначно определить проблему. |
DisplayClaim | Да | Утверждения, отображаемые пользователю, например код вызовов CAPTCHA или собранные пользователем, например входные данные кода пользователем |
outputClaim | No | Любое утверждение, возвращаемое на самозаверяемую страницу после завершения процесса проверки кода CAPTCHA. |
Действия | Да | Элемент управления отображением CAPTCHA содержит два действия, GetChallenge и VerifyChallenge. Действие GetChallenge создает, а затем отображает код задачи CAPTCHA в пользовательском интерфейсе. Действие VerifyChallenge проверяет код задачи CAPTCHA, который пользователь вводит. |
В следующем коде фрагмента КОДА XML показан пример элемента управления отображения 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>