Это так просто:
- Зайдите в админ панель 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>
}
Использовать его
А) Добавьте следующее 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"];
}
}
Б) Добавить 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
параметр в действии post или ViewBag
вручную для reCaptcha в ваших действиях и представлениях, все они будут автоматически заполняться во время выполнения соответствующими значениями в зависимости от того, запустили ли вы проект на локальном хосте или веб-сайте. .😉