有人能告诉我如何在asp.net mvc中使用验证码吗?需要下载控件吗?
希望我来得及为您提供建议...
当我尝试在我的第一个ASP.NET MVC网站上实现CAPTCHA验证时,我遇到了和您一样的问题。在发现了许多库之后,我找到了一个看起来(并且仍然看起来)最简单和高效的库:MvcReCaptcha自那以后,我已经将这个库用于我所有的ASP.NET MVC网站。
在您实现MvcReCaptcha之后,它会在您的视图上安全地生成一个CAPTCHA,并提供一个布尔值,指示验证是否成功。
在从项目中下载和引用MvcReCaptcha DLL之后,以下是如何实现它的方法(从MvcReCaptcha主页复制的说明):
在ASP.NET MVC中使用ReCaptcha:
现在,在你的Asp.Net MVC网站上设置ReCaptcha变得非常容易。
注册reCaptcha, http://recaptcha.net/whyrecaptcha.html
如何使用:
步骤1:在appsettings节中将公钥和私钥添加到web.config文件中。
<appSettings> <add key="ReCaptchaPrivateKey" value=" -- PRIVATE_KEY -- " /> <add key="ReCaptchaPublicKey" value=" -- PUBLIC KEY -- " /> </appSettings>
步骤 2:在你的 web.config 文件中添加新的命名空间
<namespaces> <add namespace="MvcReCaptcha.Helpers"/> </namespaces>
步骤3:在你的视图中实现逻辑,以实际渲染验证码控件
<%= 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(); } }
<label for="captcha">Enter <%= Html.CaptchaImage(50, 180) %> Below</label><br />
<%= Html.TextBox("captcha") %>
然后确保将验证码属性添加到您的方法中:
[CaptchaValidation("captcha")]
在验证码方面,Recaptcha只是一个选项(事实上,Stack Overflow选择了这个选项!)