2011-04-28 117 views
2

我在其中一個項目中使用Google recaptcha。我在aspx頁面中添加了recaptcha控件。現在我想驗證在recaptcha中輸入的值是否正確。我怎樣才能做到這一點按鈕點擊事件?我正在使用C#。驗證服務器端的recaptcha

+0

你的意思是你使用[谷歌的ASP.NET控件(http://code.google.com/p /驗證碼/下載/列表q =標籤:aspnetlib - 最新)?還是你自己在你的頁面上嵌入了驗證碼腳本? – Rup 2011-04-28 11:42:43

+0

@Rup:是的,我正在使用谷歌recaptcha。爲此,首先添加了Recaptcha.dll,然後添加了recaptcha控件 – 2011-04-28 12:12:48

回答

5
if(Page.IsValid) //Will be true if captcha text is correct otherwise it will be false 
{ 
//***your code**** 

} 

編輯: 呼叫 Page.Validate()檢查條件

+2

它在Page.IsValid中不起作用。它總是返回true。當我使用recaptcha.validate()和之後,當檢查recaptcha.IsValid它的工作。但我不知道它的正確方法 – 2011-04-28 12:14:37

+1

是的,這或多或少是正確的:您通常會調用'Page.Validate'來檢查頁面上的所有控件。從[IsValid MSDN](http://msdn.microsoft.com/zh-cn/library/system.web.ui.page.isvalid.aspx):「只有在調用頁面後,才應檢查此屬性。驗證方法,或者在啓動表單處理的ASP.NET服務器控件的OnServerClick事件處理程序中將CausesValidation屬性設置爲true。「 – Rup 2011-04-28 12:17:13

+1

@Rup:所以如果我只想驗證recaptcha而不是所有的控件,那麼我可以使用recaptcha.validate和recaptcha.IsValid。 – 2011-04-30 04:07:13

2

顯然,它不與ASP.NET ValidationGroups工作之前。如果您有ValidationGroup,則需要在檢查recaptcha.IsValid或Page.IsValid之前手動調用recaptcha.Validate()。

3

如果您正在使用ASP.NET驗證碼控制, 你需要手動調用

recaptcha.Validate() 

您檢查recaptcha.IsValidPage.IsValid屬性之前。

0

C#必須使用recaptcha.Validate()depois可以使用檢查Page.IsValid