Yazılım

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

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:

  • Bu bağlantıya tıklayarak sitelerinizi reCaptcha ürünü için kaydedin. İşlem sonucunda bir adet Site Key ve bir adet Secret Key sizin için tanımlanacaktır.
  • reCaptcha v2 kullanacağınız Asp.Net sayfa veya sayfalarında head kısmına şu kod satırını ekleyin:

<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” datasitekey=”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..
}
Click to comment

CEVAP BIRAKIN

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Copyright © 2018 Web Sitesi üzerinde yayınlanan tüm içerikler www.ogzblg.com sitesine aittir. Toplist 25

To Top