在页面中生成验证码的代码:

private void Page_Load(object sender, System.EventArgs e)
  {
   string checkCode = GetRandomCode(4);
   Session["CheckCode"] = checkCode;
   SetPageNoCache();
   CreateImage(checkCode);
  }

/// <summary>
  /// 设置页面不被缓存
  /// </summary>
  private void SetPageNoCache()
  {
   Response.Buffer = true;
   Response.ExpiresAbsolute = System.DateTime.Now.AddSeconds(-1);
   Response.Expires = 0;
   Response.CacheControl = "no-cache";
   Response.AppendHeader("Pragma","No-Cache");
  }

private string GetRandomCode(int CodeCount) 
  {
            string allChar = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,i,J,K,M,N,P,Q,R,S,T,U,W,X,Y,Z";
   string[] allCharArray = allChar.Split(','); 
   string RandomCode = ""; 
   int temp = -1;

Random rand = new Random(); 
   for (int i=0;i<CodeCount;i++) 
   { 
    if (temp != -1) 
    { 
     rand = new Random(temp*i*((int) DateTime.Now.Ticks)); 
    }

int t = rand.Next(33);

while (temp == t) 
    { 
     t = rand.Next(33); 
    } 
  
    temp = t; 
    RandomCode += allCharArray[t]; 
   }

return RandomCode; 
  }
  private void CreateImage(string checkCode)
  {
   int iwidth = (int)(checkCode.Length * 14);
   System.Drawing.Bitmap image = new System.Drawing.Bitmap(iwidth, 20);
   Graphics g = Graphics.FromImage(image);
   Font f = new System.Drawing.Font("Arial ", 10);//, System.Drawing.FontStyle.Bold);
   Brush b = new System.Drawing.SolidBrush(Color.Black);
            Brush r = new System.Drawing.SolidBrush(Color.FromArgb(166,8,8));
   
   //g.FillRectangle(new System.Drawing.SolidBrush(Color.Blue),0,0,image.Width, image.Height);
//   g.Clear(Color.AliceBlue);//背景色
   g.Clear(System.Drawing.ColorTranslator.FromHtml("#99C1CB"));//背景色

char[] ch = checkCode.ToCharArray();
            for (int i = 0; i < ch.Length; i++ )
            {
                if(ch[i] >= '0' && ch[i] <= '9')
                {
                    //数字用红色显示
                    g.DrawString(ch[i].ToString(), f, r, 3 + (i * 12),3);
                }
                else
                {   //字母用黑色显示
                    g.DrawString(ch[i].ToString(), f, b, 3 + (i * 12),3);
                }
            }            
   System.IO.MemoryStream ms = new System.IO.MemoryStream();
   image.Save(ms,System.Drawing.Imaging.ImageFormat.Jpeg);
   //history back 不重复 
   Response.Cache.SetNoStore();//这一句   
   Response.ClearContent();
   Response.ContentType = "image/Jpeg";
   Response.BinaryWrite(ms.ToArray());
   g.Dispose();
   image.Dispose();
  }

调用的时候设置imageurl='...aspx'就可以了。

转载于:https://www.cnblogs.com/Hard/archive/2009/02/25/1398061.html

生成验证码的一段源代码相关推荐

  1. 生成验证码_JSP源代码

    jsp验证码实现源代码 (2011-10-16 11:11:40) 验证码原理:①首先随机生成数字或字母:②把生成的数字或字母保存在Session这次会话中:③最后,在登陆页面上把接收用户输入的验证码 ...

  2. php动态网页验证,用动态网页技术PHP生成验证码图片的源代码

    文件a.php //checkNum.php session_start(); function random($len) { $srcstr="ABCDEFGHIJKLMNOPQRSTUV ...

  3. artdialog 异步加载页面 生成验证码

    artdialog  异步加载一个页面 需求:例如现在好多网站的登录或注册 都是点击弹出一个层出来 然后在上面登录.注册 这个登录可能在网站的每个页面都会有,但是我们又不能在每个页面都这一段html加 ...

  4. java生成验证码实例_Java生成验证码功能实例代码

    页面上输入验证码是比较常见的一个功能,实现起来也很简单.给大家写一个简单的生成验证码的示例程序,需要的朋友可以借鉴一下. 闲话少续,直接上代码.代码中的注释很详细. package com.SM_te ...

  5. 利用Python只需3行代码即可生成验证码

    现在验证码的种类真的是越来越多,短信验证码.语音验证码.图片验证码.滑块验证码 ... 我们在 PC 的网页端或者手机上的 app 进行登录或者注册时,应该总会遇见图片验证码,比如下面这类: 很多人学 ...

  6. Windows c# 生成验证码图片

    1.生成类CodeImageUtil using System; using System.Drawing; using System.IO;namespace sdp_share_pjt {publ ...

  7. python3—批量生成验证码(含数字、英文、中文)

    最近一直在复习,马上要期末考试了,所以这段时间没怎么写博客--今天,正好有时间来写一写博客,希望访问该博客的朋友们点一点赞,谢谢!! 文章目录 1.绘制图片 2.随机生成干扰线 3.含数字英文的验证码 ...

  8. java使用工具类生成验证码图片时,出现Exception in thread “main“ java.io.FileNotFoundException: C:\a.jpg (拒绝访问。)

    使用这段代码来测试生成验证码图片时 public static void main(String[] args) throws IOException {//生成验证码的图片位置OutputStrea ...

  9. php直播源码,生成验证码并提交验证

    php直播源码,生成验证码并提交验证的相关代码 一般处理程序(WaterMark.ashx)中代码 using System; using System.Collections.Generic; us ...

最新文章

  1. 不做调参侠,重视数据及处理能力?吴恩达发起的Data-Centric赛事总结!
  2. 官方 React 快速上手脚手架 create-react-app
  3. PowerShell-6.文件操作
  4. linux 指令tftp传输文件_tftp命令_Linux tftp 命令用法详解:在本机和tftp服务器之间使用TFTP协议传输文件...
  5. 【最后测试点超时】1063 Set Similarity (25 分)_22行代码AC
  6. CentOS7 编译 Gradle
  7. 云计算解决方案——电信行业
  8. thinkpad s3 安装win8 kali双系统笔记
  9. oracle报无效月份 注册表,在oracle中插入时间时出现“无效的月份”解决方法
  10. IDEA里如何安装Python插件打造开发环境(图文详解)
  11. 2.图像作为函数 | 裁剪、颜色通道、图像相加_5
  12. can总线报文是固定的吗_CAN总线负载率的计算方式
  13. linux中的设备名称和设备号
  14. mysql 的下划线搜索转义
  15. c语言 t跳几个字节,int占几个字节(c语言)
  16. 如何确认IAR软件有没有激活
  17. cad上样条曲线上的点太多了_CAD如何将样条曲线转换成多段线
  18. 10g gtx 光纤通信测试_光纤通信系统仿真实验
  19. Ffmpeg 视频教程 向视频中添加文字
  20. Xiangqi UVA - 1589

热门文章

  1. mysql怎么退出电脑_mysql的登陆和退出命令格式
  2. sql语言快速入门_C语言快速入门——名称可见性
  3. 传输分析_医院智能物流传输系统运营管理和效益分析
  4. CentOS7下ab压力测试Nginx和Tomcat
  5. 将Tomcat集成到IDEA
  6. Android学习笔记(九)——Activity的跳转和数据传递
  7. 机器学习-K近邻项目实战
  8. Fail - Fast机制
  9. centos7 安装nginx
  10. nginx 如何处理请求系列3-server_name指令