如何在asp.net mvc中使用验证码

时间:2010-02-18 06:17:13

标签: asp.net-mvc captcha

任何人都可以告诉我如何在asp.net mvc中使用验证码吗? 有没有必要为它下载任何控件?

2 个答案:

答案 0 :(得分:35)

希望将我的两分钱放在......

介绍 MvcReCaptcha

在尝试在我的第一个ASP.NET MVC站点上实现CAPTCHA验证时,我遇到了同样的问题。在发现了许多库之后,我发现似乎(现在似乎)仍然是最强大的直接且高效的库:MvcReCaptcha从那时起,我已经将这个库用于我的所有ASP。 NET MVC网站。

实施 MvcReCaptcha 后,它会在您的视图上安全地生成CAPTCHA,并提供验证操作是否成功的布尔值。


使用说明

下载和引用项目中的 MvcReCaptcha DLL后,如何实现它(从 MvcReCaptcha 主页复制的说明):

  

在ASP.NET MVC中使用ReCaptcha:

     

是的   现在非常容易设置ReCaptcha   在您的Asp.Net MVC网站上。

     

注册reCaptcha,   http://recaptcha.net/whyrecaptcha.html

     

如何使用:

     

第1步:添加您的公共和私人   你的web.config文件的关键   appsettings部分

<appSettings>
  <add key="ReCaptchaPrivateKey" value=" -- PRIVATE_KEY -- " />
  <add key="ReCaptchaPublicKey" value=" -- PUBLIC KEY -- " />
</appSettings>    
     

第2步:添加新的命名空间到您的   的web.config

<namespaces>
  <add namespace="MvcReCaptcha.Helpers"/>
</namespaces>
     

第3步:实现你的逻辑   查看实际渲染Captcha   控制

<%= Html.GenerateCaptcha() %>
     

第4步:实施控制器   将处理表单的操作   提交和验证码验证

[CaptchaValidator]
[AcceptVerbs( HttpVerbs.Post )]
public ActionResult CreateComment( Int32 id, bool captchaValid )
{
  if (!captchaValid)
  {
      ModelState.AddModelError("_FORM", "You did not type the verification word correctly. Please try again.");
  }
  else
  {
      // If we got this far, something failed, redisplay form
      return View();
  }
}
祝你好运!

答案 1 :(得分:2)

如果你不想写自己的Captcha(谁呢!)你可以使用Captcha库,例如:

http://www.coderjournal.com/2008/03/aspnet-mvc-captcha/

使用Captcha库,您可以将dll添加到项目中,并使用Captcha API显示和验证Captcha图像和输入。

显示验证码:

<label for="captcha">Enter <%= Html.CaptchaImage(50, 180) %> Below</label><br />
<%= Html.TextBox("captcha") %>

然后确保将Captcha属性添加到您的方法中:

[CaptchaValidation("captcha")]

Recaptcha只是Captcha的一个选项(事实上,它是Stack Overflow选择的选项!)