İlk önce kodlarımızı yazmadan, Google reCAPTCHA v3 key‘lerimizi oluşturalım.
Ş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ı.
}