2014-04-15 72 views
0

我试图把注册表单(ASP.NET MVC)中的ReCaptcha。输入错误:k:网站密钥格式无效

@Html.Raw(Html.GenerateCaptcha()) 

我已经输入验证码,从私人和公共密钥到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> 

但它给这个错误:

Input error: k: Format of site key was invalid

如何解决这个问题呢?

PS。我已阅读CoffeeCup解决方案here。但在ASP.NET中无法以这种方式解决问题。

回答

3

的Recaptcha在ASP.NET MVC中可以很容易地一分钟之内用这个的NuGet扩展实现 - Recaptcha for .NET

我能够建立一个,并在博客同样在这里 - Implementing reCAPTCHA in your ASP.NET MVC Project

下面是相同的摘要....

首先你注册并得到你的公钥和私钥。 (这个步骤你似乎与已经完成)

安装“的Recaptcha为.NET”使用NuGet包管理器,请确保您下载下面因为有很多人具有相同名称的截图所示。 http://yassershaikh.com/wp-content/uploads/2014/04/step2-recaptcha-nuget-aspnetmvc.png

添加的ReCaptcha控制到你的MVC查看

打开Views/Account/Register观点和将其添加到页面

@using Recaptcha.Web.Mvc 

的顶部,使用下面的剃刀代码包含的ReCaptcha形式

<li> 
    @Html.Label("Some label to go here") 
    @Html.Recaptcha() 
</li> 

验证用户的响应,以reCAPTCHA验证在你的控制器/动作

下一步是在你的控制器/动作配置验证码,在你的控制器文件导入下面的命名空间(的AccountController在这个例子中)

启动
using Recaptcha.Web; 
using Recaptcha.Web.Mvc; 

接下来,进入你的注册方法和使用下面的代码

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."); 
} 

下面是验证码形式的样子对我再gister页面,我使用上面的代码进行设置。

enter image description here

希望这有助于。

相关问题