你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 CAPTCHA 显示控件验证 CAPTCHA 质询字符串

重要

自 2025 年 5 月 1 日起,Azure AD B2C 将不再可供新客户购买。 在我们的常见问题解答中了解详细信息

使用 CAPTCHA 显示控件生成 CAPTCHA 质询字符串,然后通过要求用户输入他们看到或听到的内容来验证它。 若要显示 CAPTCHA 显示控件,请从 自断言技术配置文件引用它,必须将自断言技术配置文件的 setting.enableCaptchaChallenge 元数据值设置为 true

屏幕截图显示了注册页上显示的 CAPTCHA 显示控件:

注册页中显示的 CAPTCHA 屏幕截图。

注册页使用 CAPTCHA 显示控件加载。 然后,用户输入他们看到或听到的字符。 “ 发送验证码 ”按钮将验证码发送到用户的电子邮件,并且不是 CAPTCHA 显示控件元素,但它会导致验证 CAPTCHA 质询字符串。

CAPTCHA 显示控件元素

下表汇总了 CAPTCHA 显示控件包含的元素。

元素 必选 DESCRIPTION
UserInterfaceControlType 是的 值必须是 CaptchaControl
InputClaims 是的 需要一个或多个声明作为输入来指定 CAPTCHA 质询类型并唯一标识质询。
DisplayClaims 是的 要向用户显示的声明(例如 CAPTCHA 质询代码)或从用户收集的声明,例如用户输入的代码
OutputClaim 用户完成 CAPTCHA 代码验证过程后,要返回到自断言页面的任何声明。
行动 是的 CAPTCHA 显示控件包含两个作: GetChallengeVerifyChallenge
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>

后续步骤