08/01/2019
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