2015-05-28 62 views
1

有一个很难得到验证码在我的网站:(谷歌验证码V2实现VB.net

我试图找到VB.net实现的其它来源,但还没有多少运气验证。这是我曾尝试...

default.aspx.vb 

Imports System.Collections.Generic 
Imports System.Linq 
Imports System.Web 
Imports System.Web.UI 
Imports System.Web.UI.WebControls 
Imports System.Data 
Imports System.Net 
Imports System.Text 
Imports System.IO 
Imports System.Web.Script.Serialization 

Public Class _Default 
Inherits System.Web.UI.Page 

Sub reCaptcha_Click(ByVal sender As Object, ByVal e As EventArgs) 
    If (capValidate()) Then 
     MsgBox("Valid Recaptcha") 
    Else 
     MsgBox("Not Valid Recaptcha") 
    End If 

End Sub 

Public Function capValidate() As Boolean 
    Dim Response As String = Request("g-captcha-response") 
    Dim Valid As Boolean = False 
    Dim req As HttpWebRequest = DirectCast(WebRequest.Create(Convert.ToString("https://www.google.com/recaptcha/api/siteverify?secret=THIS IS WHERE MY KEY IS&response=") & Response), HttpWebRequest) 

    Try 
     Using wResponse As WebResponse = req.GetResponse() 

      Using readStream As New StreamReader(wResponse.GetResponseStream()) 
       Dim jsonResponse As String = readStream.ReadToEnd() 
       Dim js As New JavaScriptSerializer() 
       Dim data As MyObject = js.Deserialize(Of MyObject)(jsonResponse) 

       Valid = Convert.ToBoolean(data.success) 
       Return Valid 
      End Using 
     End Using 
    Catch ex As Exception 
     Return False 
    End Try 
End Function 

Public Class MyObject 
    Public Property success() As String 
     Get 
      Return m_success 
     End Get 
     Set(value As String) 
      m_success = Value 
     End Set 
    End Property 
    Private m_success As String 


End Class 

而且我的头版......

<div class="g-recaptcha" 
data-sitekey="THIS IS WHERE MY SITE KEY IS"></div> 
<asp:Button ID="btnLogin" CssClass="captcha_click" runat="server" Text="Check Recaptcha" OnClick="reCaptcha_Click" TabIndex ="4"/> 

我的消息框总是返回 “不是一个有效的验证码”

任何人都可以阐明为什么我无法获得有效的回收卡吗?

谢谢!

+0

如果您从您的'capValidate'功能的try/catch你得到一个异常抛出? – theduck

+0

没有错误,我通过添加带有一点错误消息的msgbox来检查,但它从来没有被调用过。 – Christopher

+0

并且'jsonResponse'总是包含'success:false'?有没有'错误代码'字段? – theduck

回答

3

尝试:

Dim Response As String = Request("g-recaptcha-response") 

注意re

+0

:D没有字。哈哈哈。所有这些,这是一个拼写错误>。< – Christopher