Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 在Mvc web应用程序中需要使用验证码?_Asp.net Mvc_Asp.net Mvc 3_Captcha - Fatal编程技术网

Asp.net mvc 在Mvc web应用程序中需要使用验证码?

Asp.net mvc 在Mvc web应用程序中需要使用验证码?,asp.net-mvc,asp.net-mvc-3,captcha,Asp.net Mvc,Asp.net Mvc 3,Captcha,我有mvc网络应用程序,我需要使用验证码, 我这样做就像添加了一个dll,我已经从codeplex得到,但 在register.aspx页面上,我添加了如下代码,这给了我capcha <%: CaptchaMVC.HtmlHelpers.CaptchaHelper.Captcha(Html,"Refresh","Input Symbols",5) %> 但在它没有正常工作,如在调试模式也点击注册按钮后,它是无法击中这些方法中的任何一个 为什么?如果现在还不晚,我可以建议一种验

我有mvc网络应用程序,我需要使用验证码, 我这样做就像添加了一个dll,我已经从codeplex得到,但 在register.aspx页面上,我添加了如下代码,这给了我capcha

   <%: CaptchaMVC.HtmlHelpers.CaptchaHelper.Captcha(Html,"Refresh","Input Symbols",5) %>
但在它没有正常工作,如在调试模式也点击注册按钮后,它是无法击中这些方法中的任何一个
为什么?

如果现在还不晚,我可以建议一种验证码的替代方案吗,原因如下:

如果你被卖了,这里有一个简单的技巧,我用它叫做蜜罐

您可以将其添加到视图中

@Html.TextBox("NameItWhateverYouWant", null, new {style="display:none"})
现在在窗体上有一个隐藏字段,然后在控制器中

 bool botAttack = Request.Params.AllKeys.Contains("NameItWhateverYouWant")
      && !String.IsNullOrEmpty(Request.Params["NameItWhateverYouWant"]);
基本上,只有一个机器人攻击你的注册过程将填补这一领域

我有没有提到这也会带来更好的用户体验

以下是激发解决方案灵感的博文:


我正在寻找类似的解决方案,现在有了一个适用于ASP.NET MVC的蜜罐。你可以在这里找到它:


您可以使用Recaptcha for.NET()为您的MVC.NET项目使用一个健壮、安全的验证码解决方案,只需几行代码。

好的,既然so不允许我发布完整的回复,我将在这里发布它

首先,我不相信蜜罐方法是有效的,因为机器人很容易识别哪些字段是隐藏的,正如格多龙正确指出的那样


第二,ReCAPTCHA是目前可用的最常用的验证码实现之一。免费、开源、相对有效地对付大多数而不是所有的机器人(没有验证码是无法穿透的)。我使用过其他一些.Net recaptcha实现,而MVCRecaptcha实际上是我唯一一个成功使用的实现——也许与我使用的DotNet版本有关?简单地说,它对我有效,而其他人没有。

机器人可以编程忽略隐藏字段(即使它们只被css隐藏)。注意。你认为一个普通用户如何填充隐藏字段?和萤火虫一起?
 bool botAttack = Request.Params.AllKeys.Contains("NameItWhateverYouWant")
      && !String.IsNullOrEmpty(Request.Params["NameItWhateverYouWant"]);