reCAPTCHA Nedir?
reCAPTCHA web sitenizde kullandığınız formları spamdan koruyan ücretsiz bir hizmettir. reCAPTCHA gelen kötü niyetli otomatik yazılım botlarını engellemek için google tarafından geliştirilmiştir.

Web projelerimizi hazırlarken aslında göz ardı ettiğimiz birşey genellikle ya bizi zorlayacağını yada ihtiyacımız oldugunu düşünene kadar yapmaktan kaçtığımız birşey olsada gereğini spam mesajlarını almaya başladıktan sonra görüyoruz. Şimdi sizlere asp.net projelerimizde reCAPTCHA kullanımını anlatacağım.
ReCAPTCHA nasıl kurulur?(Asp.NET)
İlk olarak Google hesabınızla reCAPTCHA‘ya giriş yapın. Giriş yaptıktan sonra spamdan korumak istediğiniz sitenizi kayıt edin. Bunun için aşağıdaki adımlar takip edin

Label: Eklediğiniz siteleri hatırlamak için bir etiket
Domains: Kullanacağınız site adresleri, her satıra bir site girebilirsiniz.
Send alerts to owners: Bu seçeneği işaretleyin ki herhangi bir durum olursa size geribildirim gelsin. (bildirimler giriş yaptığınız Google hesabına gönderilir.)
Gerekli bilgileri girdikten sonra Register butonuna tıklayarak kaydı bitirin.
Kayıt işlemi tamamladıktan sonra kaydettiğiniz siteye tıklayın. Karşınıza şöyle bir ekran çıkacak.

Bu sayfayı bir kenarda açık tutun lazım oldukça burada verilen değerleri kullanacağız.
<head></head> tagları arasına bize verilen .js tagını ekliyoruz.
<script src=’https://www.google.com/recaptcha/api.js?hl=tr‘></script>
Yukarıdaki api linkinde çağırılan js dosyasının sonunda “?hl=tr” koşulu kullanacağımız apinin türkçe olması belirtmemizi sağlar. Desteklenen tüm dillere buradan ulaşabilirsiniz. Bu kod ayrıca az önce kayıt yaptığımız sayfanın Step 1: client-side integration sekmesinde bulabilirsiniz. (İngilizce için “hl=tr” koşulunu kaldırıp dosyayı çağırmanız yeterlidir.)
Google reCAPTCHA Form Elmanını ekliyoruz.
<div class=“g-recaptcha” data–sitekey=“== Site Key ==“></div>
Bu form elemanını kafadan oluşturmuyoruz. Bu bilgiye az önce açıp bir kenara aldığımız sayfadan alacağız. Sayfadaki yeri Step 1: client-side integration sekmesindeki ikinci kod.
Site Key Sitemizi kayıt ettikten sonra aldığımız anahtarı form içindeki data-sitekey alanına eklemeyi unutmayın.
Daha sonra projenizde App_Code klasöründe bir ReCaptcha adında bir class oluşturun ve şu şekilde düzenleyin:
using System.Collections.Generic;
public class ReCaptcha
{
public bool Success
{ get; set; }
public List<string> ErrorCodes { get; set; }
public static bool Validate(string encodedResponse)
{
if (string.IsNullOrEmpty(encodedResponse)) return false;
var client = new System.Net.WebClient
();
var secret = “buraya Secret Key değerinizi yapıştırın“;
if (string.IsNullOrEmpty(secret)) return false;
var googleReply = client.DownloadString(string.Format(“https://www.google.com/recaptcha/api/siteverify?secret={0}&response={1}”, secret, encodedResponse
));
var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
var reCaptcha = serializer.Deserialize<ReCaptcha>(googleReply);
return reCaptcha.Success;
}
}
Son olarak .cs kod dosyamızda aşağıdaki gibi kullanarak doğrulamanın başarılı olup olmadığını kontrol edebilir ve ona göre işlemler yaptırabiliriz. (Bu kodları örneğin bir butonun click olayına ait programın içine yazınız.)
Önce projeye class’ı cağırıp;
ReCaptcha rc = new ReCaptcha();
Daha sonra;
var encodedResponse = Request.Form
[“g-Recaptcha-Response”];
var isCaptchaValid = ReCaptcha.Validate(encodedResponse);
if (isCaptchaValid)
{
//doğrulama başarılıysa yapılacak işler
}
else
{
//doğrulama başarısız ise yapılacak işler, hata ver vb..
}
kodunuzu bu şekilde düzenleyin… hepsi bukadar artık reCAPTCHA sitenizde aktif olacaktır.