Поделиться через


Проверка строки вызова CAPTCHA с помощью элемента управления отображением CAPTCHA

Используйте элементы управления отображения CAPTCHA для создания строки вызова CAPTCHA, а затем проверьте ее, попросите пользователя ввести то, что они видят или слышат. Чтобы отобразить элемент управления отображением CAPTCHA, вы ссылаетесь на него из самозаверяемого технического профиля, и необходимо задать для параметра метаданных самозаверяющегося технического профиляsetting.enableCaptchaChallenge значение true.

На снимке экрана показан элемент управления отображения CAPTCHA, показанный на странице регистрации:

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

Страница регистрации загружается с помощью элемента управления отображения 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>

Следующие шаги