มันง่ายมาก:
- ไปที่แผงผู้ดูแลระบบ google reCaptchaของคุณ
- เพิ่ม
localhost
& 127.0.0.1
ไปยังโดเมนของไซต์ใหม่เช่นภาพต่อไปนี้
ปรับปรุง:
หากคำถามของคุณเป็นวิธีการที่กำหนดreCaptcha
ในเว็บไซต์ Google เพื่อใช้ใน localhost แล้วฉันได้รับการเขียนข้างต้น แต่ถ้าคุณอยากรู้ว่าวิธีที่คุณสามารถใช้reCAPTCHA
ในทั้งสอง localhost
และwebsite host
โดยรหัสที่น้อยที่สุดในการควบคุมของคุณและป้องกันรหัสบางอย่างเช่นConfigurationManager.AppSettings["ReCaptcha:SiteKey"]
ในนั้นแล้ว ฉันช่วยคุณด้วยคำอธิบายและรหัสพิเศษนี้ในคำตอบของฉัน
คุณชอบการกระทำของ GET และ POST ต่อไปนี้หรือไม่?
มันรองรับ reCaptcha และไม่ต้องการรหัสอื่นใดสำหรับการจัดการ 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
}
ในมุมมอง: ( อ้างอิง )
@ReCaptcha.GetHtml(@ViewBag.publicKey)
@if (ViewBag.RecaptchaLastErrors != null)
{
<div>Oops! Invalid reCAPTCHA =(</div>
}
ที่จะใช้มัน
A)เพิ่มสิ่งต่อไปนี้ActionFilter
ในโครงการเว็บของคุณ:
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)เพิ่มreCaptcha
คีย์การตั้งค่าสำหรับlocalhost
& website
like ในwebconfig
ไฟล์ของคุณ:
<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>
หมายเหตุ:ด้วยวิธีนี้คุณไม่จำเป็นต้องตั้งค่าreCaptcha_SecretKey
พารามิเตอร์ในการดำเนินการโพสต์หรือใด ๆViewBag
สำหรับ reCaptcha ด้วยตนเองในการกระทำและมุมมองของคุณพวกเขาทั้งหมดจะถูกเติมโดยอัตโนมัติที่รันไทม์ด้วยค่าที่เหมาะสมขึ้นอยู่กับคุณได้เรียกใช้โครงการบน localhost หรือเว็บไซต์ .😉