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

发布于 2024-08-21 14:02:07 字数 47 浏览 4 评论 0原文

谁能告诉我如何在 ASP.NET MVC 中使用验证码? 是否需要下载任何控件?

can any one tell me how to use captcha in asp.net mvc?
is there any need to download any control for it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

云归处 2024-08-28 14:02:07

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

介绍 MvcReCaptcha

在尝试在我的第一个 ASP.NET MVC 站点上实现 CAPTCHA 验证时,我遇到了完全相同的问题。在发现许多库之后,我发现似乎(并且仍然看起来)是最直接、最高效的库:MvcReCaptcha。从那时起,我就在我的所有 ASP.NET MVC 站点中使用了这个库。

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


使用说明

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

将 ReCaptcha 与 ASP.NET MVC 结合使用:

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

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

如何使用:

第 1 步:添加您的公共和私人
您的 web.config 文件的密钥
应用程序设置部分

;
  >
  
    

第 2 步:将新命名空间添加到您的
网络配置

<命名空间>
  <添加命名空间=“MvcReCaptcha.Helpers”/>

第 3 步:在您的代码中实现逻辑
视图实际渲染验证码
控制

<%= Html.GenerateCaptcha() %>

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

<前><代码>[验证码验证器]
[AcceptVerbs( HttpVerbs.Post )]
公共 ActionResult CreateComment( Int32 id, bool captchaValid )
{
if (!验证码有效)
{
ModelState.AddModelError("_FORM", "您没有正确输入验证字,请重试。");
}
别的
{
// 如果我们走到这一步,有些事情失败了,重新显示表单
返回视图();
}
}

祝你好运!

Hoping it's not too late to put my two cents in...

Introducing MvcReCaptcha

I faced this exact same issue when trying to implement CAPTCHA validation on my first ASP.NET MVC site. After discovering many libraries, I found what seemed (and still seems) to be the most straightforward and efficient library: MvcReCaptcha. Since then, I have used this library for all of my ASP.NET MVC sites.

After you implement MvcReCaptcha, it securely generates a CAPTCHA on your view and provides a boolean value of whether the validation was successful to the action.


Instructions for Use

Here's how to implement it after downloading and referencing the MvcReCaptcha DLL from your project (instructions copied from MvcReCaptcha home page):

Using ReCaptcha with ASP.NET MVC:

It is
now extremely easy to setup ReCaptcha
on your Asp.Net MVC Website.

Signup for reCaptcha,
http://recaptcha.net/whyrecaptcha.html

How to Use:

Step 1: Add your Public and Private
key to your web.config file in
appsettings section

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

Step 2: Add new namespace to your
web.config

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

Step 3: Implement the logic in your
view to actually render the Captcha
control

<%= Html.GenerateCaptcha() %>

Step 4: Implement the Controller
Action that will handle the form
submission and Captcha validation

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

Good luck!

为人所爱 2024-08-28 14:02:07

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

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

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

显示验证码:

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

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

[CaptchaValidation("captcha")]

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

If you don't fancy writing your own Captcha (who does!) you can use a Captcha library, such as this:

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

With a Captcha library, you add the dll to your project and use the Captcha API to display and validate the Captcha image and input.

Display a Captcha:

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

And then make sure you add the Captcha attribute to your method:

[CaptchaValidation("captcha")]

Recaptcha is just one option when it comes to Captcha's (in fact, it's the option selected by Stack Overflow!)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文