Max*_*sky 35
希望我把两分钱放到......还为时不晚
尝试在我的第一个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文件中
Run Code Online (Sandbox Code Playgroud)<appSettings> <add key="ReCaptchaPrivateKey" value=" -- PRIVATE_KEY -- " /> <add key="ReCaptchaPublicKey" value=" -- PUBLIC KEY -- " /> </appSettings>第2步:向web.config添加新的命名空间
Run Code Online (Sandbox Code Playgroud)<namespaces> <add namespace="MvcReCaptcha.Helpers"/> </namespaces>第3步:在视图中实现逻辑以实际呈现Captcha控件
Run Code Online (Sandbox Code Playgroud)<%= Html.GenerateCaptcha() %>第4步:实现将处理表单提交和Captcha验证的Controller Action
Run Code Online (Sandbox Code Playgroud)[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(); } }
祝好运!
如果您不喜欢编写自己的验证码(谁喜欢!),您可以使用验证码库,例如:
http://www.coderjournal.com/2008/03/aspnet-mvc-captcha/
使用验证码库,您可以将 dll 添加到项目中,并使用验证码 API 来显示和验证验证码图像和输入。
显示验证码:
<label for="captcha">Enter <%= Html.CaptchaImage(50, 180) %> Below</label><br />
<%= Html.TextBox("captcha") %>
Run Code Online (Sandbox Code Playgroud)
然后确保将 Captcha 属性添加到您的方法中:
[CaptchaValidation("captcha")]
Run Code Online (Sandbox Code Playgroud)
Recaptcha 只是验证码的一种选择(事实上,这是 Stack Overflow 选择的选项!)
| 归档时间: |
|
| 查看次数: |
29509 次 |
| 最近记录: |