Tôi đến đây trong tìm kiếm của tôi, không thấy câu trả lời, và vì vậy tôi tiếp tục tìm kiếm.
Sau khi tìm kiếm, cửa sổ này vẫn mở, vì vậy tôi đang cập nhật bài đăng này với những phát hiện của mình.
Đây là nơi bạn có thể tìm hiểu về reCAPTCHA :
http://scraping.pro/no-captcha-recaptcha-challenge/
Về cơ bản, mặc dù, bạn thêm điều này vào trang web của bạn:
<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>
Để nhận các khóa reCAPTCHA của bạn , hãy truy cập trang web Google này:
https://www.google.com/recaptcha/intro/index.html
Khi bạn có khóa của mình bằng liên kết ở trên, bạn có thể tìm hiểu sâu hơn về mã hóa này bằng thông tin Google sau:
https://developers.google.com/recaptcha/
GHI CHÚ:
Từ tài liệu Google:
Tập lệnh phải được tải bằng giao thức HTTPS và có thể được bao gồm từ bất kỳ điểm nào trên trang mà không bị hạn chế.
Đây là một ví dụ về cách tôi làm cho nó hoạt động:
<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>
Nếu bạn cần xác thực trong mã ASP.NET phía sau, chỉ cần xác minh điều khiển "g-recaptcha-reply" được điền vào:
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.";
}
}
Hy vọng, một số bạn thấy điều này hữu ích.