关闭

ASP.NET中常用功能代码总结(生成验证图片)

标签: asp.netrandomstringsessionimagenull
535人阅读 评论(0) 收藏 举报
分类:

生成随机的验证图片

使用方法:

1///调用函数将验证码生成图片
2            this.CreateCheckCodeImage(GenerateCheckCode());

 

 1/// <summary>
 2        /// 产生五位的随机字符串
 3        /// </summary>
 4        /// <returns></returns>

 5        private string GenerateCheckCode()
 6        {  
 7            int number;
 8            char code;
 9            string checkCode = String.Empty;
10
11            System.Random random = new Random();
12
13            for (int i = 0; i < 5; i++)
14            {
15                number = random.Next();
16
17                if (number % 2 == 0)
18                    code = (char)('0' + (char)(number % 10));
19                else
20                    code = (char)('A' + (char)(number % 26));
21
22                checkCode += code.ToString();
23            }

24
25            ///用于客户端校验码比较
26            Session["CheckCode"= checkCode;
27
28            return checkCode;
29        }

30        
31        /// <summary>
32        /// 将验证码生成图片显示
33        /// </summary>
34        /// <param name="checkCode"></param>

35        private void CreateCheckCodeImage(string checkCode)
36        {  
37            if (checkCode == null || checkCode.Trim() == String.Empty)
38                return;
39
40            System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);
41            Graphics g = Graphics.FromImage(image);
42
43            try
44            {
45                ///生成随机生成器 
46                Random random = new Random();
47
48                ///清空图片背景色 
49                g.Clear(Color.White);
50
51                ///画图片的背景噪音线 
52                for (int i = 0; i < 25; i++)
53                {
54                    int x1 = random.Next(image.Width);
55                    int x2 = random.Next(image.Width);
56                    int y1 = random.Next(image.Height);
57                    int y2 = random.Next(image.Height);
58
59                    g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);
60                }

61
62                Font font = new System.Drawing.Font("Arial"12, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic));
63                System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(00, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2ftrue);
64                g.DrawString(checkCode, font, brush, 22);
65
66                ///画图片的前景噪音点 
67                for (int i = 0; i < 100; i++)
68                {
69                    int x = random.Next(image.Width);
70                    int y = random.Next(image.Height);
71
72                    image.SetPixel(x, y, Color.FromArgb(random.Next()));
73                }

74
75                ///画图片的边框线 
76                g.DrawRectangle(new Pen(Color.Silver), 00, image.Width - 1, image.Height - 1);
77
78                System.IO.MemoryStream ms = new System.IO.MemoryStream();
79                image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
80                Response.ClearContent();
81                Response.ContentType = "image/Gif";
82                Response.BinaryWrite(ms.ToArray());
83            }

84            finally
85            {
86                g.Dispose();
87                image.Dispose();
88            }

89        }
0
0
查看评论

ASP.NET中常用功能代码总结——生成验证图片

ASP.NET中常用功能代码总结——生成验证图片整理:Terrylee生成随机的验证图片使用方法: 1/**////调用函数将验证码生成图片2            th...
  • shuyizhi
  • shuyizhi
  • 2008-03-05 14:39
  • 232

ASP.NET中常用功能代码总结(2)——生成验证图片

生成随机的验证图片 使用方法: 1///调用函数将验证码生成图片 2            this.CreateCheckCodeImage(GenerateCheck...
  • jurken
  • jurken
  • 2014-10-04 21:03
  • 241

ASP.NET中怎样实现图片验证码功能,并且点击图片会刷新

------ 基本思路: 图片的src=后台的一个函数,此函数返回按照一定规则生成的图片文件流。 然后此图片即可生成。 那么怎样刷新验证码呢,这是个问题。 因为给图片的src赋了值之后,想要更换一个图片,那么src的那个函数必须再执行一次才行。 怎么办呢? 研究证明,可使用随机数的方法。 基本原理...
  • festone000
  • festone000
  • 2015-11-24 00:13
  • 3138

asp.net 数据验证控件的使用实例

asp.net 数据控件的使用
  • hoho_12
  • hoho_12
  • 2016-04-27 18:31
  • 2083

asp.net之验证图片

using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.U...
  • softwarelive
  • softwarelive
  • 2014-06-04 10:02
  • 333

ASP.NET中常用功能代码总结——上传图片到数据库

ASP.NET中常用功能代码总结——上传图片到数据库整理:Terrylee一.上传图片到数据库 1/**////  2/// 上传图片 3///  4private void UploadFile() ...
  • shuyizhi
  • shuyizhi
  • 2008-03-05 14:34
  • 245

ASP.NET中常用功能代码总结——XML文件操作篇

 一.写入XML文件 1/**////  2/// 写入XML文件 3///  4private void WriteXML() 5{ 6   ...
  • cxyyxc
  • cxyyxc
  • 2007-08-04 09:23
  • 406

ASP.NET中常用功能代码总结——上传图片到数据库

 一.上传图片到数据库 1/**////  2/// 上传图片 3///  4private void UploadFile() 5{ 6   ...
  • windok2004
  • windok2004
  • 2008-07-23 23:47
  • 2315

ASP.NET中常用功能代码总结——发送邮件篇

ASP.NET中常用功能代码总结(1)——发送邮件篇整理:Terrylee一.           用Asp.net实现邮件系统 1/**////  2 ...
  • shuyizhi
  • shuyizhi
  • 2008-03-05 14:41
  • 258

ASP.NET中常用功能代码总结(5)——文件操作篇

一.读取文本文件  1///   2/// 读取文本文件  3///   4private void ReadFromTxtFile()  5{  6  ...
  • jurken
  • jurken
  • 2014-10-04 21:04
  • 246
    个人资料
    • 访问:181413次
    • 积分:2471
    • 等级:
    • 排名:第17628名
    • 原创:61篇
    • 转载:46篇
    • 译文:0篇
    • 评论:28条
    文章分类
    最新评论
    网络大本营