我试图将ReCaptcha放入注册表单(ASP.NET MVC)。
@Html.Raw(Html.GenerateCaptcha())
我已将ReCaptcha中的私钥和公钥输入Web.config:
<appSettings>
<add key="ReCaptchaPrivateKey" value="6LcMwPESAAAAAFyxyxyxyxyxyxy"/>
<add key="ReCaptchaPublicKey" value="6LcMwPESAAAAAGVyxyxyxyxyxyxy"/>
<add key="webpages:Version" value="2.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
但是它给出了这个错误:
输入错误:k:网站密钥格式无效
如何解决这个问题?
PS。我已阅读CoffeeCup解决方案here。但是在ASP.NET中无法以这种方式解决问题。
答案 0 :(得分:3)
我能够设置一个并在此处发表相同的博客 - Implementing reCAPTCHA in your ASP.NET MVC Project
以下是相同的摘要......
首先注册并获取您的公钥和私钥。 (这一步你似乎已经完成了)
安装&#34; Recaptcha for .NET&#34;使用NuGet包管理器,请确保下载下面屏幕截图中显示的那个,因为有很多其他同名的用户。
将Recaptcha控件添加到MVC视图
打开Views/Account/Register
视图并将其添加到页面顶部
@using Recaptcha.Web.Mvc
并使用以下剃刀代码包含recaptcha表单
<li>
@Html.Label("Some label to go here")
@Html.Recaptcha()
</li>
在控制器/操作中验证用户对Recaptcha挑战的响应
下一步是在 controller / action 中配置recaptcha,首先在控制器文件中导入以下命名空间(本例中为AccountController)
using Recaptcha.Web;
using Recaptcha.Web.Mvc;
接下来,转到Register方法并使用以下代码
RecaptchaVerificationHelper recaptchaHelper = this.GetRecaptchaVerificationHelper();
if (String.IsNullOrEmpty(recaptchaHelper.Response))
{
ModelState.AddModelError("", "Captcha answer cannot be empty.");
return View(model);
}
RecaptchaVerificationResult recaptchaResult = recaptchaHelper.VerifyRecaptchaResponse();
if (recaptchaResult != RecaptchaVerificationResult.Success)
{
ModelState.AddModelError("", "Incorrect captcha answer.");
}
以下是recaptcha表单在我使用上述代码设置的注册页面上的显示方式。
希望这会有所帮助。