Es ist so einfach:
- Gehen Sie zu Ihrem Google reCAPTCHA-Verwaltungstafel
- 追加
localhost
& 127.0.0.1
zu den Domänen einer neuen Website, wie in der folgenden Abbildung dargestellt.
Aktualisierung:
Wenn Ihre Frage ist, wie man reCAPTCHA auf der Google-Website für die Verwendung in localhost, dann hat es sein, wie ich es oben geschrieben, aber wenn Sie neugierig sind, wie Sie reCAPTCHA auf verwenden können beide localhost
y un website host
por minimaler Code in Ihrem Controller und verhindern einige Codes wie ConfigurationManager.AppSettings["ReCaptcha:SiteKey"]
darin, dann helfe ich Ihnen mit dieser zusätzlichen Beschreibung und dem Code in meiner Antwort.
Gefallen Ihnen die folgenden GET- und POST-Aktionen?
Der folgende Code unterstützt reCAPTCHA und benötigt keinen weiteren Code für die Handhabung von reCAPTCHA.
[HttpGet]
[Recaptcha]
public ActionResult Register()
{
// Your code in the GET action
}
[HttpPost]
[Recaptcha]
[ValidateAntiForgeryToken]
public ActionResult Register(RegisterViewModel model, string reCaptcha_SecretKey){
// Your code in the POST action
if (!ModelState.IsValid || !ReCaptcha.Validate(reCaptcha_SecretKey))
{
// Your code
}
// Your code
}
En Ansicht: ( Referenz )
@ReCaptcha.GetHtml(@ViewBag.publicKey)
@if (ViewBag.RecaptchaLastErrors != null)
{
<div>Oops! Invalid reCAPTCHA =(</div>
}
So verwenden Sie es
A) Fügen Sie Folgendes hinzu ActionFilter
zu Ihrem Webprojekt:
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) Fügen Sie die reCAPTCHA-Einstellungsschlüssel für beide localhost
y website
so in Ihrem webconfig
Datei:
<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>
Anmerkung: Auf diese Weise brauchten Sie nicht die reCaptcha_SecretKey
Parameter in der Postaktion oder jede ViewBag
für reCaptcha manuell in Ihren Aktionen und Ansichten. Alle werden automatisch zur Laufzeit mit den entsprechenden Werten ausgefüllt, je nachdem, ob Sie das Projekt auf dem lokalen Rechner oder auf der Website ausgeführt haben.