验证码2.0验证失败 [英] Recaptcha 2.0 validation failed
问题描述
我现在面临问题的Recaptcha 2.0。其工作罚款,直到我按一下按钮,检查验证。但它总是执行else块并显示验证失败。我失去了something.Please帮助。
在ASPX,
<头=服务器>
<标题>< /标题>
<脚本类型=文/ JavaScript的SRC =https://www.google.com/recaptcha/api.js>< / SCRIPT>
< /头>
<身体GT;
<?的形式ID =form1的行动=方法=邮报=服务器>
< DIV>
< DIV 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屋!