2011-04-28 119 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