Je suis en train d'utiliser une ancienne version du Recaptcha validateur sur un projet .net 1.1, qui se trouve ici: http://recaptcha.googlecode.com/svn/trunk/recaptcha-plugins/dotnet-old/src/Recaptcha/Recaptcha Validator dans le projet .NET 1.1
Le code je ressemble beaucoup à un exemple qui se trouvent sur le lien ci-dessus:
<asp:TextBox ID="EmailAddress" runat="server"></asp:TextBox>
<recatpcha:RecaptchaValidator ID="RecaptchaValidator1" runat="server" Theme="Clean" PublicKey="xxxxxxxxxxxxxx" PrivateKey="xxxxxxxxxx" ControlToValidate="EmailAddress"></recatpcha:RecaptchaValidator>
<asp:Button ID="Button1" runat="server" Text="Button" CausesValidation="true" OnClick="Button1_Click" />
le comportement que je voudrais est simple: la charge de la page, l'utilisateur est présenté avec un champ pour saisir leur adresse e-mail, un captcha pour terminer, et un bouton de soumission . Sur soumettre, si aucun utilisateur n'est trouvé dans notre base de données avec cette adresse e-mail, ou que le captcha est mal répondu, un nouveau captcha est affiché avec un message d'erreur approprié. Sinon, ils recevront un e-mail sur la façon de réinitialiser leur mot de passe.
Le problème principal est que le captcha ne s'affiche pas lors du chargement de la page. Lorsque j'appuie sur le bouton Soumettre cependant, en déclenchant Page.Validate(), la page est rechargée et le captcha est affiché. Sur cette base, je me suis dit que j'essaierais une approche différente et que j'appellerais Page.Validate() dans l'événement de chargement de page pour que le captcha apparaisse au début. Cela a presque fonctionné: le captcha est apparu sur le chargement de la première page, mais quand un email invalide est soumis avec une réponse captcha correcte, le captcha disparaît quand la page est rechargée, mais bien sûr, l'email ne peut pas être envoyé.
Comment est-ce que je peux forcer le captcha à être rendu quand la page est frappée initialement, ou, empêcher le captcha d'être soumis quand une adresse email invalide est entrée?