ASP.NET MVC实现网站验证码功能

     网站添加验证码,主要为防止机器人程序批量注册,或对特定的注册用户用特定程序暴力破解方式,以进行不断的登录、灌水等危害网站的操作。验证码被广泛应用在注册、登录、留言等提交信息到服务器端处理的页面中。

     在ASP.NET网站中应用验证码是很容易的,网上有很多的解决方案。最近在做一个OA项目,因系统采用的ASP.NET MVC框架,同样在登录页中需用到验证码,故需将原来在ASP.NET网站中使用的验证码移植到ASP.NET MVC中。

     原ASP.NET网站用来生成验证码的类文件
ValidateCode.cs
Code

    为适合ASP.NET MVC框架,修改其输出图片流的方法CreateValidateGraphic为:
Code

    在Controller.cs中,添加Action,用来设置将生成的验证码存入Session,并输出验证码图片:
Code

    调用方式为:在需要使用验证码的页面中,加入<img>标签:
<img id="valiCode" style="cursor: pointer;" src="../Account/GetValidateCode" alt="验证码" />

    效果如下图:


    到于Account/Login这个Action中的处理,只需加入对Session中验证码的判断:
Code

    为实现登录页中,点击图片切换验证码,可以登录页中加入此JS代码实现刷新验证码:
JS Code

    至此,ASP.NET MVC中已成功实现验证码功能。

posted on 2009-09-18 21:51  思益工作室  阅读(2032)  评论(2编辑  收藏  举报

导航