我在搜索中来到这里,没有看到答案,所以我一直在搜索。
在我搜索之后,这个窗口仍然打开,所以我正在用我的发现更新这篇文章。
您可以在这里了解 reCAPTCHA:
http://scraping.pro/no-captcha-recaptcha-challenge/
不过,基本上,您将其添加到您的网页中:
<script src="https://www.google.com/recaptcha/api.js" >;
<form method="post">
<div class="g-recaptcha" data-sitekey="[site key issued by google]"></div>
<input value="submit" type="submit" />
</form>
要获取您的 reCAPTCHA 密钥,请访问此 Google 网站:
https://www.google.com/recaptcha/intro/index.html
使用上面的链接获得密钥后,您可以使用以下 Google 信息深入了解其编码:
https://developers.google.com/recaptcha/
注意:
来自 Google 文档:
脚本必须使用 HTTPS 协议加载,并且可以不受限制地从页面上的任何位置包含。
这是我如何让它工作的示例:
<html>
<head>
<title>Contact</title>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<script>
var onloadCallback = function () {
grecaptcha.render('dvCaptcha', {
'sitekey': '<%=ReCaptcha_Key %>',
'callback': function (response) {
$.ajax({
type: "POST",
url: "CS.aspx/VerifyCaptcha",
data: "{response: '" + response + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (r) {
var captchaResponse = jQuery.parseJSON(r.d);
if (captchaResponse.success) {
$("[id*=txtCaptcha]").val(captchaResponse.success);
$("[id*=lblAlarm]").hide();
} else {
$("[id*=txtCaptcha]").val("");
$("[id*=lblAlarm]").show();
var error = captchaResponse["error-codes"][0];
$("[id*=lblAlarm]").html("RECaptcha error. " + error);
}
}
});
}
});
};
</script>
</head>
<body>
<form action="?" method="POST">
<div id="dvCaptcha" class="g-recaptcha" data-sitekey="[site key issued by google]"></div>
<br />
<asp:Button ID="btnSubmit" runat="Server" Text="Send" OnClick="btnSubmit_Click" />
<asp:Label ID="lblAlarm" runat="server" ForeColor="Red"></asp:Label>
</form>
</body>
</html>
如果您需要在 ASP.NET 代码隐藏中进行验证,只需验证“g-recaptcha-response”控件是否填写:
protected static string ReCaptcha_Key, ReCaptcha_Secret;
protected void btnSubmit_Click(object sender, EventArgs e)
{
if (!String.IsNullOrEmpty(Request.Form["g-recaptcha-response"]))
{
// other code
} else
{
lblAlarm.Text = "reCAPTCHA failed.";
}
}
希望你们中的一些人觉得这很有用。