使用 CAPTCHA 顯示控件驗證 CAPTCHA 挑戰字串

這很重要

自 2025 年 5 月 1 日起,Azure AD B2C 將不再可供新客戶購買。 在我們的常見問題中深入瞭解。

使用 CAPTCHA 顯示控制件來產生 CAPTCHA 挑戰字串,然後要求使用者輸入他們看到或聽到的內容來驗證它。 若要顯示 CAPTCHA 顯示控制項,您可以從 自我判斷技術配置文件參考它,而且您必須將自我判斷技術配置檔的 setting.enableCaptchaChallenge 元數據值設定為 true。

這個螢幕快照顯示註冊頁面上顯示的 CAPTCHA 顯示控制器:

CAPTCHA 在註冊頁面中出現的螢幕快照。

註冊頁面會使用 CAPTCHA 顯示控件載入。 然後,用戶會輸入他們看到或聽到的字元。 [ 傳送驗證碼 ] 按鈕會將驗證碼傳送給使用者的電子郵件,而且不是 CAPTCHA 顯示控件元素,但它會導致驗證 CAPTCHA 挑戰字串。

CAPTCHA 顯示控件元素

下表摘要說明 CAPTCHA 顯示控制項所包含的專案。

元素 為必填項目 說明
UserInterfaceControlType 是的 值必須是 CaptchaControl。
輸入聲明 是的 需要一或多個宣告做為輸入,以指定 CAPTCHA 挑戰類型,並唯一識別挑戰。
顯示聲明 是的 要向用戶顯示的宣告,例如 CAPTCHA 挑戰程式代碼,或從使用者收集,例如使用者輸入的程式代碼
輸出聲明 否 在使用者完成 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>

後續步驟