验证码2.0验证失败 [英] Recaptcha 2.0 validation failed

查看:875
本文介绍了验证码2.0验证失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我现在面临问题的Recaptcha 2.0。其工作罚款,直到我按一下按钮,检查验证。但它总是执行else块并显示验证失败。我失去了something.Please帮助。

在ASPX,

 <头=服务器>
    <标题>< /标题>
    <脚本类型=文/ JavaScript的SRC =htt​​ps://www.google.com/recaptcha/api.js>< / SCRIPT>
< /头>
<身体GT;
    <?的形式ID =form1的行动=方法=邮报=服务器>
        < D​​IV>
            < D​​IV CLASS =G-验证码数据sitekey =PUBLIC_KEY>< / DIV>
            < ASP:按钮的ID =ButtonCheck=服务器文本=检查的OnClick =ButtonCheck_Click/>
            < ASP:标签ID =LabelMessage=服务器>< / ASP:标签>
        < / DIV>
    < /表及GT;
< /身体GT;

然后,班组长,

 公共类为MyObject
    {
        公共字符串成功{搞定;组; }
    }

然后code文件的背后,

 保护无效的Page_Load(对象发件人,EventArgs的发送)
        {        }        保护无效ButtonCheck_Click(对象发件人,EventArgs的发送)
        {
            如果(Page.IsValid)
            {
                如果(CheckValidation())
                {
                    LabelMessage.Text =你准备好了。
                }
                其他
                {
                    LabelMessage.Text =验证失败。
                }
            }
        }
        公共BOOL CheckValidation()
        {
            字符串的响应=请求[G-验证码响应];
            布尔有效= FALSE;
            HttpWebRequest的要求= (HttpWebRequest)WebRequest.Create(\"https://www.google.com/recaptcha/api/siteverify?secret=Private_Key &放大器;响应=+响应);
            尝试
            {
                使用(WebResponse类WebResponse类= request.GetResponse())
                {
                    使用(StreamReader的StreamReader的=新的StreamReader(webResponse.GetResponseStream()))
                    {
                        字符串jasonResponse = streamReader.ReadToEnd();
                        JS的JavaScriptSerializer =新的JavaScriptSerializer();
                        为MyObject数据= js.Deserialize<&MyObject的GT;(jasonResponse);
                        有效值= Convert.ToBoolean(data.success);
                    }
                }
                返回有效的;
            }
            赶上(引发WebException前)
            {
                扔恩;
            }
        }


解决方案

有另一种方式加入参考reCAPTCHA的DLL到ASP .NET应用程序在您的WebForm显示谷歌的Recaptcha。

从获取您的 rel=\"nofollow\">。

第1步:下载验证码DLL。您可以从链接下载最新的reCAPTCHA DLL

第2步:解压缩归档文件夹。解压缩存档文件夹后,你会看到以下文件。

第三步:添加refrence到reCAPTCHA的DLL

浏览的Recaptcha DLL

选择DLL文件

第四步:注册验证码通过添加标签preFIX到ASP.NET的网页

 <%@注册标签preFIX =验证码命名空间=的Recaptcha大会=的Recaptcha%GT;

第5步:验证码添加code到网页

 < ASP:标签ID =lblResult=服务器>< / ASP:标签>
    <验证码:recaptchacontrol ID =RecaptchaControl2=服务器公钥=粘贴 - 您 - 公共 - 桂 - 这里privatekey =磷酸酶 - 您 - 私有密钥在这里的主题=blackglass>< /验证码:recaptchacontrol>
    < ASP:按钮的ID =btnSubmit按钮=服务器文本=提交的onclick =btnSubmit_Click>< / ASP:按钮>

code背后:

 保护无效btnSubmit_Click(对象发件人,EventArgs的发送)
{
    如果(RecaptchaControl2.IsValid)
    {
        lblResult.Text =你猜对了!
        lblResult.ForeColor = Color.Green;
    }
    其他
    {
        lblResult.Text =不正确的;
        lblResult.ForeColor = Color.Red;
    }
}

I am facing problem with Recaptcha 2.0. Its working fine untill I click the button to check for validation. But it always executing the else block and showing "Validation failed.".Am I missing something.Please Help.

In aspx,

  <head runat="server">
    <title></title>
    <script type="text/javascript" src="https://www.google.com/recaptcha/api.js"></script>
</head>
<body>
    <form id="form1" action="?" method="post" runat="server">
        <div>
            <div class="g-recaptcha" data-sitekey="Public_Key"></div>
            <asp:Button ID="ButtonCheck" runat="server" Text="Check" OnClick="ButtonCheck_Click" />
            <asp:Label ID="LabelMessage" runat="server" ></asp:Label>
        </div>
    </form>
</body>

Then a classs,

public class MyObject
    {
        public string success { get; set; }
    }

Then In Code Behind File,

protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void ButtonCheck_Click(object sender, EventArgs e)
        {
            if(Page.IsValid)
            {
                if(CheckValidation())
                {
                    LabelMessage.Text = "You are ready to go.";
                }
                else
                {
                    LabelMessage.Text = "Validation Failed.";
                }
            }
        }
        public bool CheckValidation()
        {
            string Response = Request["g-recaptcha-response"];
            bool Valid = false;
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.google.com/recaptcha/api/siteverify?secret=Private_Key &response=" + Response);
            try
            {
                using(WebResponse webResponse=request.GetResponse())
                {
                    using(StreamReader streamReader=new StreamReader(webResponse.GetResponseStream()))
                    {
                        string jasonResponse = streamReader.ReadToEnd();
                        JavaScriptSerializer js = new JavaScriptSerializer();
                        MyObject data = js.Deserialize<MyObject>(jasonResponse);
                        Valid = Convert.ToBoolean(data.success);
                    }
                }
                return Valid;
            }
            catch(WebException ex)
            {
                throw ex;
            }
        }

解决方案

There is another way to display Google Recaptcha on your WebForm by adding Reference to reCaptcha DLL into asp .net application.

Get your recaptcha keys from here.

Step 1: Download reCaptcha DLL. You can download latest reCaptcha DLL from this link.

Step 2: Unzip the archived folder. After unzipping the archived folder you will see following files.

Step 3: Add refrence to reCaptcha DLL.

Browse Recaptcha DLL

Select DLL File

Step 4: Register reCaptcha to asp .net webpage by adding Tagprefix.

<%@ Register TagPrefix="recaptcha" Namespace="Recaptcha" Assembly="Recaptcha" %>

Step 5: Add reCaptcha Code into webpage

<asp:label id="lblResult" runat="server"></asp:label>
    <recaptcha:recaptchacontrol id="RecaptchaControl2" runat="server" publickey="Paste-Your-Public-Kye-here" privatekey="Pase-Your-Private-Key-Here" theme="blackglass"></recaptcha:recaptchacontrol>
    <asp:button id="btnSubmit" runat="server" text="Submit" onclick="btnSubmit_Click"></asp:button>

Code Behind:

protected void btnSubmit_Click(object sender, EventArgs e)
{
    if (RecaptchaControl2.IsValid)
    {
        lblResult.Text = "You Got It!";
        lblResult.ForeColor = Color.Green;
    }
    else
    {
        lblResult.Text = "Incorrect";
        lblResult.ForeColor = Color.Red;
    }
}

这篇关于验证码2.0验证失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆