Це так легко:
- Перейдіть на панель адміністратора google reCaptcha
- Додайте
localhost
& 127.0.0.1
до доменів нового веб-сайту, наприклад, наступного зображення.
Оновлення:
Якщо ваше запитання полягає в тому , щоб встановити reCaptcha
на сайті Google для використання в локальному хості, то я вже написав вище , але якщо вам цікаво , що , як ви можете , використовуючи 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
подобається 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
для повторної операції вручну у ваших діях і переглядах, всі вони автоматично заповнюватимуться під час виконання відповідними значеннями залежно від запуску проекту на localhost або веб-сайті .😉