[转] 验证码类库 CaptchaMvc

CaptchaMvc 是一个有弹性的、简单的解决方案,它能够解决你项目中所有与验证码相关的问题。你需要做的所有事情就是向你的项目中添加一个类库,添加之后验证码就准备就绪了。该项目拥有使用验证码所需要的所有内容:

  • 有两种类型的验证码,普通的和数学的
  • 支持在 session 或者 cookie 中存储验证码
  • 支持“智能验证码”
  • 能够很容易地扩展默认实现

CaptchaMvc 项目也在不断地演变,我会尽量支持所有人提出的需求。我认为这些就是区分它和其他项目的主要内容。CaptchaMvc 项目支持 ASP.NET MVC 3、4和5,这些版本之间几乎没有什么不同,仅仅是类库中使用了 MVC 4中添加的 AllowAnonymousAttribute 属性。

这个项目的智能验证码是特色:

智能验证码让验证码对用户更加友好,在最好的情况下用户永远不会看到验证码。有多种技术能够让验证码更加友好。例如,有一种技术称为“假输入域”。CaptchaMvc支持多种技术能够区分用户和机器人。让我简短的介绍一下每一种技术:

  • 假的输入(类名—FakeInputIntelligencePolicy)——使用一个“假的”输入域,正如我前面所写的。
  • JavaScript(类名—JavaScriptIntelligencePolicy)——尝试着去检查用户是否启用了 JavaScript ,如果用户禁用了JavaScript那么用户必须输入一个验证码
  • 响应时间(类名—ResponseTimeIntelligencePolicy)——允许你设置一个时间,在该时间内验证码将被认为无效。假如一个机器人请求一个表单,填充它并提交…页面加载和提交之前的间隔时间可能会少于一秒——没有人能够做到这一点。
  • 多种方式的组合(类名—MultiIntelligencePolicy)——允许你将不同的策略联合到一起。

设置“智能验证码”的代码示例,下面是一个作者的网站上使用的代码示例:

1 CaptchaUtils.CaptchaManager.IntelligencePolicy = new
2 MultiIntelligencePolicy(
3 new FakeInputIntelligencePolicy(),
4 new JavaScriptIntelligencePolicy(),
5 new ResponseTimeIntelligencePolicy(TimeSpan.FromSeconds(3)));
时间: 2024-10-10 13:59:18

[转] 验证码类库 CaptchaMvc的相关文章

tp5中引入extend中的第三方类库 这里以验证码为例

1.首先在tp5底层vendor自带验证码类库,这里为了测试,可以先拷贝出来一份,放入到extend中,vendor->topthink->think-captcha 2.可以先在extend中先新建一个lib文件夹,把think-captcha中的内容放入到lib中 3.打开src下的Captcha.php文件 ,把命名空间namespace删除掉 ,extend文件夹下就算解决完成了. 4.控制器中: 首先应引入第三方类库,可以查看手册中的  自动加载模块. \ 的意思是不让它根据命名空间

[转] 采访 CaptchaMvc 的创建者 Vyacheslav Volkov

InfoQ 采访了 CaptchaMvc 的创建者 Vyacheslav Volkov,与他一起探讨了CaptchaMvc项目以及他对验证码未来的看法. InfoQ:是什么促使你创建自己的验证码类库? 那个时候我正开始使用MVC 3框架.因为需要在自己的项目中使用验证码,所以我开始寻找一个能够解决我的问题的解决方案.但是我能够找到的所有方案都仅能够在MVC 2上使用,有一些甚至根本无法使用.在搜索了这么多内容之后,我决定编写自己的验证码实现,因此也就出现了CaptchaMvc类库的第一个版本.这

Thinkphp 5 验证码无法正常显示的排错以及解决方案 【已解决】

Thinkphp 安装 topthink/think-captcha 验证码类库后,就可以使用 {:captcha_img()} 显示验证码了, 具体官网的教程请查看如下链接: https://www.kancloud.cn/manual/thinkphp5/154295 但是有很多人第一次操作都会因为各种原因而无法正常的显示验证码图片,以下我总结了所有可能导致无法显示验证码图片的原因以及对应的解决方法,仅供参考. 一.GD 库问题 打开 F12 查看控制台的报错,如果是 500,则代表服务器问

S2---深入.NET平台和C#编程的完美总结

1.NET简单解说 l 面向对象提升 OOP(Object Oriented  Programming)面向对象编程 AOP:(Aspache  Oriented Programming):面向切面编程 OOD(Object Oriented  Designer)面向对象设计(架构师)   3万/month OOA(Object Oriented  Analysis)面向对象分析  (分析师) 10万/month DBA(Database Administrator,简称DBA) l 泛型集合对

Magento(社区版)自带模块解析以及在国内的使用建议一

本章开始逐个解析Magento1自带的模块,根据模块复杂度和重要性的不同,描述的方式也会有所区别,有些仅使用文字,有些会配上截图. 1.Admin 如字面意思,Admin模块是跟后台管理员相关的,具体来说,主要就是后台用户(admin_user表)和后台用户的权限管理(admin_role和admin_rule表).到1.9.2.3版本, 出于安全考虑新增了permission_variable和permission_block功能,这个就不细讲了,详见1.9.2.3的release-notes

自定义MVC框架之工具类-图像处理类

截止目前已经改造了4个类: ubuntu:通过封装验证码类库一步步安装php的gd扩展 自定义MVC框架之工具类-分页类的封装 自定义MVC框架之工具类-文件上传类 图像处理类: 1,图片加水印处理( 支持任意位置与九宫格位置 ) 2,图片缩放处理( 等比缩放,不变形裁剪 ) 1 <?php 2 3 class Image{ 4 //文件路径 5 protected $path; 6 //是否允许随机文件名称 7 protected $enableRandName; 8 //文件类型 9 pro

自定义MVC框架之工具类-模型类

截止目前已经改造了5个类: ubuntu:通过封装验证码类库一步步安装php的gd扩展 自定义MVC框架之工具类-分页类的封装 自定义MVC框架之工具类-文件上传类 自定义MVC框架之工具类-图像处理类 这个模型类支持以下功能: >连贯操作,js叫链式操作,连贯操作的函数可以打乱顺序,最后一个函数必须是执行语句的那个函数,如select, delete, update, add等 如 $db->table( 'user' )->where( 'id=1' )->select() 等

java第三方工具包

--搜集于网络 1.Apache POI 处理office文档用到的2. IText PDF操作类库 3.Java Base64 Base64编码类库 4.Commons-lang 对应java sdk里面的java.lang包,用来简化基本工具类操作 5.pingyin4j 中文转拼音库 6.Commons-IO,处理IO的工具包 7.Commons-beanutils 用来处理javaBean类的反射,内省的工具包 8.Commons-codec 处理常用加密编码 9.Commons-col

atitit.验证码识别step3----去除边框---- 图像处理类库 attilax总结java版本

atitit.验证码识别step3----去除边框---- 图像处理类库 attilax总结java版本 1. 去除边框思路原理 1 2. Thumbnailator 是一个用来生成图像缩略图.裁切.旋转.添加水印等操作 2 3. OpenCL的Java库 JavaCL 2 4. Java Image Filters是一款基于Java的图像处理类库,特别是在图像滤镜特效方面, 2 4.1.1. 色彩调整 2 4.1.2. 变形和扭曲 5 5. JJIL 是一个Java 的图像处理类库,有超过60