任何人都可以告诉我如何在asp.net mvc中使用验证码吗? 有没有必要为它下载任何控件?
答案 0 :(得分:35)
希望将我的两分钱放在......
在尝试在我的第一个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选择的选项!)