Asp.Net Web Sitesinde Google reCaptcha v2 Kullanımı


Twitter'da Paylaş Favorilerime Ekle

Google reCaptcha v2.0 Nesnesini Asp.Net Sitelerinde Kullanmak

Kullanıcılardan bilgi alınan web sayfalarında, spamları önlemek amacıyla captcha kullanımı son derece yaygındır. Kullanacağımız captcha sistemini kendimiz oluşturabileceğimiz gibi, hazır sistemler de kullanabiliriz. 

Bu hazır sistemlerden en çok kullanılanı da Google tarafından sunulan reCAPTCHA arayüzüdür.

Google uzun süredir kullanımda olan reCAPTCHA v1.0 ürünü artık güncellemeyeceğini, bundan sonra reCAPTCHA v2.0 versiyonunun geliştirileceğini duyurdu. reCAPTCHA  v1.0 versiyonu uygulandığı sitelerde çalışmaya devam edecek fakat yeni gelişitirmelerden faydalanılmamış olacaktır.

reCAPTCHA v1 versiyonunun Php, Asp.Net ve başka platformlar için hazırlanmış sürümleri mevcuttu. Ancak reCAPTCHA v2 versiyonunu Asp.Net sitelerinde kullanmak istersek farklı çözümler bulmak gerekmektedir.

Öncelikle reCAPTCHA v.2 kullanımı için gereken standart adımları gerçekleştirelim:

<script src="https://www.google.com/recaptcha/api.js" async defer></script>

  • reCaptcha v2 nesnesi nerede görünsün istiyorsanız oraya da şu kodu yapıştırın. Site-key yazan yere, size verilen site key yazılmalıdır.
<div class="g-recaptcha" data-sitekey="site-key"></div>

Bu adımlardan sonra reCaptcha nesnesi sayfanızda görünecek, fakat Asp.Net ile uyumlu olmadığı için çalışmayacaktır. 

Bu sorunu gidermek için farklı çözümler bulunmakta olup bunlardan bir tanesi şu şekildedir:

Asp.Net sitenizin App_Code klasöründe 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.)

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..
}

 

recaptcha v2 asp.net, asp.net recaptcha v2.0 nasıl kullanılır, asp net recaptcha 2 kullanımı, recaptcha v2.0 in asp.net application, asp.net sitesinde recaptcha 2 kullanmak, asp.net uyumlu recaptcha v2.0, recaptcha v2 dotnet

KONU İLE İLGİLİ ÖRNEKLER