İlk önce kodlarımızı yazmadan, Google reCAPTCHA v3 key‘lerimizi oluşturalım.

https://www.google.com/recaptcha/admin/create

Şimdi key‘lerimizi oluşturduktan sonra artık ASP.NET Core projemize geçebiliriz.

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

sitemizin head kısmına yazıyoruz.

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

bunuda recaptcha nın gözükeceği kısmı buraya yazıyoruz data-sitekey e google recaptcha nın verdiği bilgileri gireceğiz.

      private async Task<bool> CheckCaptcha()
        {
            var postData = new List<KeyValuePair<string, string>>()
            {
                new KeyValuePair<string, string>("secret", "(burata google nin size verdiği site key i gireceğiniz)"),
                new KeyValuePair<string, string>("remoteip", HttpContext.Connection.RemoteIpAddress.ToString()),
                new KeyValuePair<string, string>("response", HttpContext.Request.Form["g-recaptcha-response"])
            };

            var client = new HttpClient();
            var response = await client.PostAsync("https://www.google.com/recaptcha/api/siteverify", new FormUrlEncodedContent(postData));

            var o = (JObject)JsonConvert.DeserializeObject(await response.Content.ReadAsStringAsync());

            return (bool)o["success"];
        }

Aşşağıdaki kodlar HomeControllere yazılacak var captchaImage = HttpContext.Request.Form[“g-recaptcha-response”]; kodu ile recapticha bilgilerini alacağız.

string.IsNullOrEmpty(captchaImage) recaptichayı boş bıraktıysa yapılacak.

var verified = await CheckCaptcha();
if (verified)
{
// recapticha başarılı.
}

üsteki kod recapticha kontrolü.

   var captchaImage = HttpContext.Request.Form["g-recaptcha-response"];
 if (string.IsNullOrEmpty(captchaImage))
                    {                       
            TempData["HataMesaj"] = "recapticha lütfen boş bırakmayın."
                    }
    var verified = await CheckCaptcha();
                        if (verified)
                        {
// recapticha başarılı.
                        }

Bir cevap yazın

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