Es ist so einfach:
- Gehen Sie zu Ihrem Google ReCaptcha-Administrationsbereich
- Fügen Sie
localhost
& 127.0.0.1
zu Domains einer neuen Site wie im folgenden Bild hinzu.
Aktualisieren:
Wenn Ihre Frage ist , wie setzen reCaptcha
für die Verwendung in localhost in Google - Website, dann schrieb ich war es oben , aber wenn Sie neugierig sind , dass , wie Sie verwenden , können reCAPTCHA
auf beiden localhost
und website host
durch minimal - Codes in Ihrem Controller und verhindert , dass einige Codes wie ConfigurationManager.AppSettings["ReCaptcha:SiteKey"]
in es dann Ich helfe Ihnen mit dieser zusätzlichen Beschreibung und den Codes in meiner Antwort.
Mögen Sie die folgenden GET- und POST-Aktionen?
Es unterstützt reCaptcha und benötigt keine weiteren Codes für die Behandlung von 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
}
In Ansicht: ( Referenz )
@ReCaptcha.GetHtml(@ViewBag.publicKey)
@if (ViewBag.RecaptchaLastErrors != null)
{
<div>Oops! Invalid reCAPTCHA =(</div>
}
Um es zu benutzen
A) Fügen Sie ActionFilter
Ihrem Webprojekt Folgendes hinzu :
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 hinzu localhost
und website
mögen Sie es in Ihrer 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>
Hinweis: Auf diese Weise mussten Sie weder reCaptcha_SecretKey
Parameter in der Post-Aktion noch ViewBag
manuell für reCaptcha in Ihren Aktionen und Ansichten festlegen. Alle Parameter werden zur Laufzeit automatisch mit den entsprechenden Werten gefüllt, je nachdem, ob Sie das Projekt auf dem lokalen Host oder auf der Website ausgeführt haben .😉