我正在尝试在 .net 1.1 项目中使用旧版本的 Recaptcha 验证器,可以在此处找到:http ://recaptcha.googlecode.com/svn/trunk/recaptcha-plugins/dotnet-old/src/Recaptcha /
我拥有的代码与上面链接中的示例非常相似:
<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" />
我想要的行为很简单:在页面加载时,用户会看到一个输入电子邮件地址的字段、一个要完成的验证码和一个提交按钮。提交时,如果在我们的数据库中没有找到使用该电子邮件地址的用户,或者验证码的回答不正确,则会显示一个新的验证码以及相应的错误消息。否则,他们将收到一封有关如何重置密码的电子邮件。
主要问题是验证码不会在页面加载时显示。然而,当我点击提交按钮时,触发 Page.Validate(),页面被重新加载并显示验证码。
基于此,我想我会尝试一种不同的方法并在页面加载事件中调用 Page.Validate() 以使验证码最初显示出来。这几乎奏效了:验证码出现在第一页加载时,但是当提交无效的电子邮件以及正确的验证码答案时,重新加载页面时验证码会消失,但当然无法发送电子邮件。
如何在最初点击页面时强制呈现验证码,或者在输入无效电子邮件地址时阻止提交验证码?