Yazar Ol Yazar Girişi
Yazar Girişi
E-Posta Adresi
Şifre
Şifremi Unuttum
Asp.Net .Net MVC PHP & MySQL C# PhotoShop CSS jQuery AlgoritmA MsSQL Server HTML Ruby
- Kategoriler -
Türkçe
English
German
Tüm Kategoriler
MVC için Google Re-Captcha Kullanımı

Merhaba Arkadaşlar,
Bizim yorumlar kısmında da göreceğiniz gibi google recaptcha nasıl kullanacağınızı anlatacağım.
öncelikle 
https://www.google.com/recaptcha  sitesine girip üye olarak veya gmail hesabınızla giriş yaparak My reCaptcha sag üstte durur. onu tıklayarak.


yeni bir Captcha tanımlamanız gerekiyor.
label yazan kısma kullandığınız sitenin adını da yazabilrsiniz.
ben v2 kullanıyorum seçiminizi yaptıktan sonra register butonuna basmanız yeterlidir.

google bu hizmet için size bir api js kodu verir
bu kodu head taglarının arasına yerleştirmelisiniz der fakat herhangi bir yerde de koymanız yeterlidir.
<script src='https://www.google.com/recaptcha/api.js'></script>

form alanınıza, genel de en alt kısımda olur Captcha kodunun çıkması için
<div class="g-recaptcha" data-sitekey="site-key"></div>

Adding reCAPTCHA to your site 

başlığı aldında size site key ve Secret key diye iki tane key verecektir google Re-Captcha bunlardan site key anahtarını yukarıda ki data-sitekey kısmına yazmalısınız.

görüntü kısmı bu kadar şimdi kod kısmına gelelim
öncelikle ReCaptcha adında bir class oluşturalım.
public class ReCaptcha
{
   public bool Success { get; set; }
   public List ErrorCodes { get; set; }
 
}

bu class a bir Validate eklememiz gerekiyor. aşağıda ki kodu bir üstte açtığımız class ın son süslü parantezinden önceye ekliyoruz yani classın içinde olacak şekilde.
 
public static bool Validate(string encodedResponse)
{
    if (string.IsNullOrEmpty(encodedResponse)) return false;
 
    var client = new System.Net.WebClient();
    var secret = "Secret Key değerinizi giriniz";
 
    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(googleReply);
 
    return reCaptcha.Success;
}
secret = "" yazan kısma yine google ReCaptcha  size verdiği Secret key i yapıştırın. Doğrulama için zorunlu eklemezseniz çalışmaz.

şimdi formumuzda kontrol kısmına gelelim
 
var encodedResponse = Request.Form["g-Recaptcha-Response"];
var isCaptchaValid = ReCaptcha.Validate(encodedResponse);
 
if (isCaptchaValid)
{
   //Captcha doğrulaması başarılıysa yapılacak işler yani kayıt işlemini yap
}
else
{
   //Captcha doğrulaması başarısız oldu ise verilecek hatayı yaz
}

hepsi bu kadar.
iyi çalışmalar.

 
Sosyal Hesabında Paylaş

3896 görüntüleme

Yorumlar
Adınız Soyadınız
Mail Adresiniz
Doğrulama Kodu

Ayşe Toptan 10 ay önce yazıldı.

Merhaba,

Kod için teşekkürler. Fakat şöyle bir sorum var bunu nasıl test edebilirim kendi localimde?Kodun doğru çalışıp çalışmadığını bilmeden alan adını girdiğim siteye güncelleme geçemem. Var mıdır bunun bir test ortamı?

Veysel APARI9 ay önce cevap verdi.

deneme diye bir sayfa oluşturup sitenize yükleyin orda test edersiniz çalıştığı taktirde gerçek sayfanıza yüklersiniz.


ersin karahan 6 ay önce yazıldı.

validate etmek için eklediğimde Deserialize hata veriyor ve çözemedim yardım edebilir misim

Veysel APARI5 ay önce cevap verdi.
using System.Web.Script.Serialization; ekleyin.

Bildiklerimiz.Net Bildiklerimizi paylaşıyoruz, bilmediklerimizi öğreniyoruz. biz bunları yapıyoruz ya siz...

© 2020 Bildiklerimiz Tüm hakları saklıdır.
bir Bildiklerimiz.Net projesidir.