É tão fácil:
- Vá para o painel de administração do Google reCaptcha
- Adicione
localhost
& 127.0.0.1
aos domínios de um novo site, como na imagem a seguir.
Atualizar:
Se a sua pergunta é como definir reCaptcha
no site do Google para usá-lo em localhost, então i foi escrevi acima, mas se você é curioso que como você pode usar reCAPTCHA
em ambos localhost
e website host
por códigos mínimos em seu controlador e impedir que alguns códigos como ConfigurationManager.AppSettings["ReCaptcha:SiteKey"]
no-lo, em seguida, Ajudo você com esta descrição e códigos extras na minha resposta.
Você gosta das seguintes ações GET e POST?
Ele suporta o reCaptcha e não precisa de nenhum outro código para lidar com o reCaptcha.
[HttpGet]
[Recaptcha]
public ActionResult Register()
{
// Your codes in GET action
}
[HttpPost]
[Recaptcha]
[ValidateAntiForgeryToken]
public ActionResult Register(RegisterViewModel model, string reCaptcha_SecretKey){
// Your codes in POST action
if (!ModelState.IsValid || !ReCaptcha.Validate(reCaptcha_SecretKey))
{
// Your codes
}
// Your codes
}
Na vista: ( referência )
@ReCaptcha.GetHtml(@ViewBag.publicKey)
@if (ViewBag.RecaptchaLastErrors != null)
{
<div>Oops! Invalid reCAPTCHA =(</div>
}
Para usá-lo
A) Adicione o seguinte ActionFilter
ao seu projeto da Web:
public class RecaptchaAttribute : FilterAttribute, IActionFilter
{
public void OnActionExecuting(ActionExecutingContext filterContext)
{
var setting_Key = filterContext.HttpContext.Request.IsLocal ? "ReCaptcha_Local" : "ReCaptcha";
filterContext.ActionParameters["ReCaptcha_SecretKey"] = ConfigurationManager.AppSettings[$"{setting_Key}:SecretKey"];
}
public void OnActionExecuted(ActionExecutedContext filterContext)
{
var setting_Key = filterContext.HttpContext.Request.IsLocal ? "ReCaptcha_Local" : "ReCaptcha";
filterContext.Controller.ViewBag.Recaptcha = ReCaptcha.GetHtml(publicKey: ConfigurationManager.AppSettings[$"{setting_Key}:SiteKey"]);
filterContext.Controller.ViewBag.publicKey = ConfigurationManager.AppSettings[$"{setting_Key}:SiteKey"];
}
}
B) Adicione as reCaptcha
teclas de configuração para ambos localhost
e website
curta no seu webconfig
arquivo:
<appSettings>
<!-- RECAPTCHA SETTING KEYS FOR LOCALHOST -->
<add key="ReCaptcha_Local:SiteKey" value="[Localhost SiteKey]" />
<add key="ReCaptcha_Local:SecretKey" value="[Localhost SecretKey]" />
<!-- RECAPTCHA SETTING KEYS FOR WEBSITE -->
<!--<add key="ReCaptcha:SiteKey" value="[Webite SiteKey]" />
<add key="ReCaptcha:SecretKey" value="[Webite SecretKey]" />-->
<!-- OTHER SETTING KEYS OF YOUR PROJECT -->
</appSettings>
Nota: Dessa forma, você não precisou definir o reCaptcha_SecretKey
parâmetro na ação pós ou ViewBag
no reCaptcha manualmente em suas Ações e Visualizações, todos eles serão preenchidos automaticamente em tempo de execução com os valores apropriados, dependendo da execução do projeto no host ou site local .😉