Blog


Integrando o Google reCAPTCHA V2 com MVC

A seguir vamos ver o passo a passo para integração do reCAPTCHA do Google com seu website. Este tutorial funciona a partir do framework 4.5 do ASP.NET pois tem propriedades da controller que funcionam somente nessa versão ou superior.
 
1) Cadastrar o site no recaptcha da sua conta.
 
2) No Web.config do projeto inserir as chaves pública e privada dentro da tag appSettings
<add key="ReCaptchaPublicKey" value="chave publica"/>
<add key="ReCaptchaPrivateKey" value="chave privada"/>
 
3) Na View inserir o script antes de fechar a tag body
<script src='https://www.google.com/recaptcha/api.js'></script>
 
Insira a DIV abaixo onde deseja deixar o checkbox de validação do recaptch e claro, dentro do formulário!
<div class="g-recaptcha" data-sitekey="chave publica"></div>
 
4) Na controller que receberá o post, inserir o método abaixo:
 
public async Task<Boolean> ValidateRecaptcha(string encodedResponse)
{
   var url = $"https://www.google.com/recaptcha/api/siteverify?secret=" + ConfigurationManager.AppSettings["ReCaptchaPrivateKey"] +"&response=" + encodedResponse;
   using (var client = new HttpClient())
   {
      using (var response = await client.PostAsync(url, null))
      {
         var json = JObject.Parse(await response.Content.ReadAsStringAsync()); 
         if (!(bool)json["success"])
         {
            return false;
         }
      }
   } 
   return true;
}
 
Insira também o código para validação do recaptch:
 
var captcha = await ValidateRecaptcha(form["g-recaptcha-response"]);
if (!captcha)
{
   ViewData["RETORNO"] = false;
   return View();
}

Comentários