MVC reCaptcha Kullanımı Nasıl Yapılır ?

MVC yapısı kullanarak oluşturmuş olduğunuz bir web uygulamasında iletişim formu ya da çeşitli formlar bulunuyor olabilir. Bu formlara reCaptcha eklemediğiniz taktirde bot veya kötü niyetli kullanıcılar tarafından formunuz gereksiz yere çok kullanılmaktadır. Bu durum boşuna sunucularınızı yoracaktır. Bu sebepten dolayı kullanıcının robot mu insan mı olduğunu anlamak için reCaptcha kullanımı ben her ne kadar sinir olsam da şimdilik en geçerli yöntemdir. MVC reCaptcha kullanımı işinize yarayacaktır bu sebepten dolayı bu yazıda nasıl yapacağımıza bakalım.

MVC reCaptcha Kullanım Adımları

İlk olarak Google reCaptcha web sitesini ziyaret edelim ve Google üyeliğimiz ile web sitede oturum açalım. Ardından karşımıza çıkan formu doldurarak reCaptcha kullanmak istediğimiz web siteyi ekleyelim.

Burada dikkat etmeniz gereken olay reCAPTCHA s2 seçip “Robot değilim” Onay Kutusu demeniz gerekmektedir. Eğer bu şekilde yapmazsanız Site sahibinin görmesi gereken HATA: Geçersiz anahtar türü reCAPTCHA hatası alırsınız.

Kayıt işlemi tamamlandığında sistem size site anahtarı ve gizli anahtar olmak üzere 2 adet anahtar vermektedir. Bu anahtarları bir yere not edin.

<script src='https://www.google.com/recaptcha/api.js'></script>

Yukarıdaki kodu MVC projenizin paylaşılan tasarım (shared layout) kodları içerisinde </head> etiketinden önceye gelecek şekilde ekleyin.

<div class="g-recaptcha" data-sitekey="KEY"></div>

Yukarıdaki kodu da formun son kısmına (captchayı göstermek istediğiniz yere) eklemeniz gerekmektedir. Bu ekleme işlemi sırasında KEY yazılı yere kendi anahtarınızı koymanız gerekmektedir.

Formun bulunduğu viewın bağlı olduğu controllera şu şekilde bir sınıf ekleyelim:

 public class CaptchaResult
    {
        [JsonProperty("success")]
        public bool Success { get; set; }
        [JsonProperty("error-codes")]
        public List<string> ErrorCodes { get; set; }
    }

Controller içerisinde formdan gelen sonuca göre işlem yaparken captcha sonucunu artık kontrol edeceğiz:

  var captcha = Request.Form["g-recaptcha-response"];

                const string secret = "GİZLİ ANAHTAR";

                var restUrl = string.Format("https://www.google.com/recaptcha/api/siteverify?secret={0}&response={1}", secret, captcha);

                WebRequest req = WebRequest.Create(restUrl);
                HttpWebResponse resp = req.GetResponse() as HttpWebResponse;

                JsonSerializer serializer = new JsonSerializer();

                CaptchaResult result = null;

                using (var reader = new StreamReader(resp.GetResponseStream()))
                {
                    string resultObject = reader.ReadToEnd();
                    result = JsonConvert.DeserializeObject<CaptchaResult>(resultObject);
                }

                if (result.Success)
                {

Localhost, bu site anahtarı için desteklenen alanlar listesinde yok. hatası alıyorsanız bilin ki doğru yoldasınız. reCaptcha oluştururken alan adı listesine alan adımızı ekledik ancak localhostu eklemedik bu sebepten dolayı localhostta reCaptcha çalışmayacaktır. Projeyi derleyip yayımladığınız zaman proje çalışacaktır.

Son Yazılar

Apple Tarafından Beklenen Tablet 2023 iPad Ultra Geliyor mu?

2022 yılı içerisinde Apple yenilenen iPad modellerini karşımıza çıkarttı. Ancak hepimizin beklediği iPad modeli 2022… Daha fazla oku

1 gün önce

2 Yeni Dolandırıcılık Sistemi ve iCloud Kilidi Nedir ?

Günümüz şartlarında neredeyse her Apple ürünü iCloud Etkinleştirme kilidi özelliğine sahiptir. Bu kilit bir çok… Daha fazla oku

3 gün önce

iCloud Öncesi Kullanılan Şu Anda Unutulanlar Apple Servisleri

Apple sattığı cihazlardan para kazandığı kadar servisleri ile de para kazanan bir firma olmuştur. Son… Daha fazla oku

4 gün önce

Elmadan Haberler 3 – iPhone SE 4 İptal Edildi – Üretim Vietnam’da

Elmadan haberler 3 içerisindeki gündem şu şekildedir: Apple TV Android Akıllı Cep Telefonu ve Tabletlere… Daha fazla oku

5 gün önce

iPhone Güncelleme Sonrası Pil Sağlığı Neden Düşer ?

iPhone Güncelleme sonrası pil sağlığı neden düşer son derece fazla aldığım diğer bir sorudur. Bu… Daha fazla oku

1 hafta önce

iPhone iOS 16.2 İpuçları – Programsız Video İndirme ve Dahası

Bilinçli iPhone Kullanıcısı video serisi kapsamında iPhone iOS 16.2 ipuçları bu yazıda ele alacağım bir… Daha fazla oku

1 hafta önce

Bu web site kullanıcı deneyimini arttırmak amacı ile çerezleri kullanmaktadır