Es tan fácil:
- Vaya a su panel de administración de google reCaptcha
- Agregue
localhost
& 127.0.0.1
a los dominios de un nuevo sitio como la siguiente imagen.
Actualizar:
Si su pregunta es cómo establecer reCaptcha
en el sitio de Google para usarlo en localhost, a continuación, i ha sido lo escribió más arriba, pero si usted es curioso que cómo se puede utilizar reCAPTCHA
en tanto localhost
y website host
por códigos mínimos en su controlador y prevenir algunos códigos comoConfigurationManager.AppSettings["ReCaptcha:SiteKey"]
en él, entonces Te ayudo con esta descripción adicional y los códigos en mi respuesta.
¿Te gustan las siguientes acciones GET y POST?
Es compatible con reCaptcha y no necesita ningún otro código para manejar 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
}
A la vista: ( referencia )
@ReCaptcha.GetHtml(@ViewBag.publicKey)
@if (ViewBag.RecaptchaLastErrors != null)
{
<div>Oops! Invalid reCAPTCHA =(</div>
}
Para usarlo
A) Agregue lo siguiente ActionFilter
a su proyecto 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) Agregue las reCaptcha
teclas de configuración para ambos localhost
y me website
gusta en su webconfig
archivo:
<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: De esta manera, no necesitaba establecer el reCaptcha_SecretKey
parámetro en la acción posterior ni ninguno ViewBag
para reCaptcha manualmente en sus Acciones y Vistas, todos ellos se completarán automáticamente en el tiempo de ejecución con los valores adecuados dependiendo de si ha ejecutado el proyecto en el servidor local o el sitio web .😉