【问题标题】:How to Use Captcha in asp.net mvc [closed]如何在 asp.net mvc 中使用验证码 [关闭]
【发布时间】:2011-01-18 04:55:17
【问题描述】:

谁能告诉我如何在 asp.net mvc 中使用验证码? 是否需要为它下载任何控件?

【问题讨论】:

标签: asp.net-mvc captcha


【解决方案1】:

希望现在投入我的两分钱还为时不晚......

介绍 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>
  <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();
  }
}

祝你好运!

【讨论】:

  • 非常彻底。试了一下,效果很好。我现在坚持使用 net 3.5,因此 Microsoft.web.helpers 与 net 3.5 不兼容,这就是解决方案。
  • @tugberk_ugurlu_:很高兴听到。祝你好运!
  • 对于 .NET 4.0 MVC 3 Razor,您需要在解决方案中导入 MvcReCaptcha 项目,将目标更改为 .NET 4,删除 System.Web.Mvc 引用(它引用旧版本默认情况下),添加 System.Web.Mvc v3.0.0.0,重建并引用这个项目,而不是项目捆绑的 DLL。在您的 Razor 文件中添加 @Html.Raw(Html.GenerateCaptcha()) 或者您可以修改 GenerateCaptcha 以返回 MvcHtmlString。其他一切都一样。
  • 如果你使用 SSL,你还需要去code.google.com/apis/recaptcha/docs/aspnet.html 下载最新的二进制文件并替换 MvcReCaptcha 项目中的 recaptcha.dll 程序集。
  • @PawelKrakowiak Nuget 包名称是什么?
【解决方案2】:

如果您不喜欢编写自己的验证码(谁愿意!),您可以使用验证码库,例如:

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 选择的选项!)

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-19
  • 2016-09-10
  • 2011-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多