c# - ASP.net MVC C# Recaptcha on Identity Login
问题描述
我正在尝试按照这篇文章顶部答案的第三个中的说明在我的MVC
ASP.net项目上实施 Googles reCaptcha,如何为 ASP.NET MVC 实施 reCaptcha?. 目前我已经下载并包含了正确的依赖项
using reCAPTCHA.MVC;
我的登录方法如下所示:
// POST: /Account/Login
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
[CaptchaValidator(
PrivateKey = "your private reCaptcha Google Key",
ErrorMessage = "Invalid input captcha.",
RequiredMessage = "The captcha field is required.")]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (!ModelState.IsValid)
{
return View(model);
}
// This doesn't count login failures towards account lockout
// To enable password failures to trigger account lockout, change to shouldLockout: true
var result = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, shouldLockout: false);
switch (result)
{
case SignInStatus.Success:
return RedirectToLocal(returnUrl);
case SignInStatus.LockedOut:
return View("Lockout");
case SignInStatus.RequiresVerification:
return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
case SignInStatus.Failure:
default:
ModelState.AddModelError("", "Invalid login attempt.");
return View(model);
}
}
在我看来,我在我的内部添加了验证码:
@html.beginform(){
@Html.Recaptcha()
@Html.ValidationMessage("ReCaptcha")
}
我还将我的公钥和私钥添加到我的web.config
文件中。但是,当我在登录页面上运行所有内容时,会captcha
显示该框,除了没有点击的地方,我得到error
:
“站点所有者的错误:无效的站点密钥”应在验证码框中单击的框所在的位置。
此外,我尝试重置密钥,但仍然没有运气。
解决方案
您可以在 Controller 中获得响应
var response = Request["g-recaptcha-response"];
您可以轻松实现 reCaptcha 我在搜索中找到了一个示例,我希望这会有所帮助
https://www.codeproject.com/articles/874150/google-recaptcha-in-asp-net-mvc
推荐阅读
- python - os.system 直到在 python 中输入才起作用
- python - 为什么standardscaler在不同数量的特征下效果不同
- java - java - 如何在java removeIf中流式传输已删除的项目?
- json - JSON解析器允许字符串中的换行符?
- python - Python - 如何四舍五入到指定的小数
- python - 如果多个实例处于活动状态,Python 子进程命令不会等待
- spring-batch - 我的弹簧批处理步骤在达到构建后一直循环
- python - 通知时未从喙回调中获取所有字节
- oracle11g - sqldeveloper 打不开
- c++ - regex_match 无法将字符串与特殊的正则表达式字符串匹配