مشاركة عبر


تحقق من سلسلة تحدي CAPTCHA باستخدام عنصر تحكم عرض CAPTCHA

هام

اعتبارا من 1 مايو 2025، لن يكون 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>

الخطوات التالية