我试图在.NET 1.1项目,该项目可以在这里找到使用旧版本的ReCaptcha验证的:http://recaptcha.googlecode.com/svn/trunk/recaptcha-plugins/dotnet-old/src/Recaptcha/的Recaptcha验证在.NET 1.1项目
我的代码是非常相似的例子
<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()来获取验证码最初露面。这几乎奏效了:验证码出现在第一页加载时,但是当一个无效的电子邮件与正确的验证码答案一起提交时,验证码在页面重新加载时消失,但当然不能发送电子邮件。
如何我要么强制验证码当页面最初打被渲染,或者,防止输入无效的电子邮件地址时,所提交的验证码?