我試圖在.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()來獲取驗證碼最初露面。這幾乎奏效了:驗證碼出現在第一頁加載時,但是當一個無效的電子郵件與正確的驗證碼答案一起提交時,驗證碼在頁面重新加載時消失,但當然不能發送電子郵件。
如何我要麼強制驗證碼當頁面最初打被渲染,或者,防止輸入無效的電子郵件地址時,所提交的驗證碼?