下面是一个完整的mvc controller类

  1. public class CodeController : Controller
  2. {
  3. private const string CODE = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";//验证码字符池
  4. private const int COUNT = ;//验证码字符个数
  5. private const int WIDTH = ;//图片宽
  6. private const int HEIGHT = ;//图片高
  7.  
  8. // 产生验证码
  9. private string GetCode()
  10. {
  11. Random r = new Random();
  12. int length = CODE.Length;
  13. StringBuilder sCode = new StringBuilder();
  14. for (int i = ; i < COUNT; i++)
  15. {
  16. int index = r.Next(, length);
  17. sCode.Append(CODE[index]);
  18. }
  19. return sCode.ToString();
  20. }
  21.  
  22. /// <summary>
  23. /// 创建验证码图片
  24. /// </summary>
  25. /// <returns>图片文件</returns>
  26. public ActionResult Code()
  27. {
  28. //画背景图
  29. Bitmap bmp = new Bitmap(WIDTH, HEIGHT);//创建位图(宽,高)
  30. Graphics g = Graphics.FromImage(bmp);//创建画布
  31. g.FillRectangle(Brushes.LightGray, , , WIDTH, HEIGHT);//为画布填充底色(颜色,起始位置,终止位置)
  32.  
  33. //画验证码
  34. string code = this.GetCode();//取出验证码
  35. this.Session.Add("code", code);//将当前验证码存入Session
  36. Font f = new Font("微软雅黑", , FontStyle.Italic);//自定义文本格式(字体,字号,字形)
  37. g.DrawString(code, f, Brushes.Black, , );//在画布上写入文本(内容,格式,颜色,起始位置)
  38.  
  39. //画干扰点或线
  40. Random r = new Random();
  41. for (int i = ; i < ; i++)
  42. {
  43. Color color = Color.FromArgb(r.Next(, ), r.Next(, ), r.Next(, ));//随机颜色
  44. Pen pen = new Pen(color);//创建线笔(颜色)
  45.  
  46. int x = r.Next(, WIDTH);
  47. int y = r.Next(, HEIGHT);
  48. int xDir = r.Next();
  49. int yDir = r.Next();
  50. g.DrawLine(pen, x, y, x + xDir, y + yDir);//在画布上画短线(线笔,起始位置,终止位置)
  51. }
  52. ReturnResult result = new ReturnResult() { Result=true};
  53. //向客户端输出
  54. using (MemoryStream mStream = new MemoryStream())//创建内存流对象
  55. {
  56. bmp.Save(mStream, ImageFormat.Jpeg);//保存位图至内存流(内存流,格式)
  57. byte[] data = mStream.ToArray();//将内存流转换成字节数组
  58. return this.File(data, "application/image");//向客户端输出文件(输出内容,内容类型)
  59. }
  60. }
  61.  
  62. }

前台中使用

  1. <div class="Mask_div1 clearfix">
  2. <p class="Mask_p1 fl">验证码:</p>
  3. <input type="text" class="Mask_text1 fl" id="codetxt" />
  4. <img src="/code/code" id="code" class="Mask_ing fl" />
  5. <a href="javascript:void(0)" id="change" class="Mask_a1 fl">【刷新】</a>
  6. </div>
  7.  
  8. <script>
    $(function(){
    $("#change").click(function () {
                    var url = "/code/code?t=" + Date();
                    $("#code").attr("src", url);
                });
  9.  
  10. })
     </script>

MVC中的验证码的更多相关文章

  1. MVC中验证码

    MVC中验证码的实现(经常用,记录备用)   一.目录 1.多层架构+MVC+EF+AUTOFAC+AUTOMAPPER: 2.MVC中验证码的实现(经常用,记录备用) 3.Ligerui首页的快速搭 ...

  2. Spring mvc 中使用 kaptcha 验证码

    生成验证码的方式有很多,个人认为较为灵活方便的是Kaptcha ,他是基于SimpleCaptcha的开源项目.使用Kaptcha 生成验证码十分简单并且参数可以进行自定义.只需添加jar包配置下就可 ...

  3. Spring MVC 中使用 Google kaptcha 验证码

    验证码是抵抗批量操作和恶意登录最有效的方式之一. 验证码从产生到现在已经衍生出了很多分支.方式.google kaptcha 是一个非常实用的验证码生成类库. 通过灵活的配置生成各种样式的验证码,并将 ...

  4. MVC中验证码的实现(经常用,记录备用)

    一.目录 1.多层架构+MVC+EF+AUTOFAC+AUTOMAPPER: 2.MVC中验证码的实现(经常用,记录备用) 3.Ligerui首页的快速搭建 二 正文 Ok,我们的验证码开始,这篇文章 ...

  5. MVC中使用Action全局过滤器出现:网页无法正常运作 将您重定向的次数过多。解决办法

    前言当我们访问某个网站的时候需要检测用户是否已经登录(通过Session是否为null),我们知道在WebForm中可以定义一个BasePage类让他继承System.Web.UI.Page,重写它的 ...

  6. 基于spring mvc的图片验证码实现

    本文实现基于spring mvc的图片验证码,分后台代码和前端页面的展现以及验证码的验证. 首看后台实现代码: @RequestMapping({"authCode"}) publ ...

  7. MVC之图片验证码

    MVC之图片验证码 controller中的action方法public ActionResult GetValidateCode() { ValidateCode vCode = new Valid ...

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

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

  9. asp.net mvc 短信验证码

    把发短信功能写成一个类包,需要引用: SmsUtillity.cs: using System; using System.Collections.Generic; using System.Linq ...

随机推荐

  1. UITouch

    触摸事件基本都是发生在 viewController 中,首先触摸的对象是视图,而视图的类 UIView 继承了 UIRespnder 类,但是要对事件作出处理,还需要重写 UIResponder 类 ...

  2. 洛谷P3709 大爷的字符串题(莫队)

    题目背景 在那遥远的西南有一所学校 /*被和谐部分*/ 然后去参加该省省选虐场 然后某蒟蒻不会做,所以也出了一个字符串题: 题目描述 给你一个字符串a,每次询问一段区间的贡献 贡献定义: 每次从这个区 ...

  3. ObjectARXWizards & AutoCAD .NET Wizards 下载地址

    Autodesk Developer Network ObjectARX Wizards The ObjectARX Wizards for AutoCAD 2016 for  Visual Stud ...

  4. webpack热更新实现

    原文地址:webpack热更新实现 webpack,一代版本一代神,代代版本出大神.如果你的webpack和webpack-dev-server版本大于2小于等于3.6,请继续看下去.其它版本就必浪费 ...

  5. Python脚本开发练习

    打印乘法口诀表 #!/usr/bin/python #coding=utf-8 print("Hello,World....") print("你好,欢迎来到Python ...

  6. 「BZOJ1038」「洛谷P2600」「ZJOI2008」瞭望塔 半平面交+贪心

    题目链接 BZOJ/洛谷 题目描述 致力于建设全国示范和谐小村庄的H村村长dadzhi,决定在村中建立一个瞭望塔,以此加强村中的治安. 我们将H村抽象为一维的轮廓.如下图所示: 我们可以用一条山的上方 ...

  7. Windows服务注意!

    安装不成功 报错,或者安装成功 不运行 ,要把引用的dll文件 放到obj \debug文件夹下

  8. HashMap 1.8的源码分析一

    public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, ...

  9. redis常用数据类型与命令

    注意:LPUSH 和LPOP按照栈进行操作,RPUSH和RPOP按照队列进行操作 zremrangebyscore key score开始  score结束//根据score删除 zremrangeb ...

  10. php 安装扩展库

    liunx系统 1. /usr/local/php/bin/php-config php 配置文件位置 [ php-config是一个脚本文件,用于获取所安装的php配置的信息 ] 在编译扩展时,如果 ...