To takie proste:
- Przejdź do panelu administracyjnego Google reCaptcha
- Dodaj
localhost
& 127.0.0.1
do domen nowej witryny, takich jak poniższy obraz.
Aktualizacja:
Jeśli masz pytanie, jak ustawić reCaptcha
w witrynie Google do używania go w localhost, a potem został napisałem wyżej, ale jeśli jesteś ciekawy, że jak można za pomocą reCAPTCHA
na obu localhost
i website host
przy minimalnych kodów w kontrolerze i zapobiec niektóre kody jak ConfigurationManager.AppSettings["ReCaptcha:SiteKey"]
w nim następnie Pomagam ci z tym dodatkowym opisem i kodami w mojej odpowiedzi.
Czy podobają Ci się następujące działania GET i POST?
Obsługuje reCaptcha i nie potrzebuje żadnych innych kodów do obsługi 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
}
W widoku: ( odniesienie )
@ReCaptcha.GetHtml(@ViewBag.publicKey)
@if (ViewBag.RecaptchaLastErrors != null)
{
<div>Oops! Invalid reCAPTCHA =(</div>
}
Aby go użyć
A) Dodaj następujące elementy ActionFilter
do swojego projektu internetowego:
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) Dodaj reCaptcha
klucze ustawień dla obu localhost
&website
polub to w swoim webconfig
pliku:
<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>
Uwaga: W ten sposób nie trzeba ręcznie ustawiać reCaptcha_SecretKey
parametru w akcji post ani żadnego ViewBag
dla reCaptcha ręcznie w swoich Akcjach i widokach, wszystkie zostaną automatycznie wypełnione w czasie wykonywania odpowiednimi wartościami w zależności od uruchomienia projektu na lokalnym hoście lub stronie internetowej .😉