很多时候我们在登录什么网站的时候,除了需要什么用户名和密码之外,有的还需要验证码那么在asp.net中这个验证码如何编写和设计,今天我就来给大家说一下;
首先创建一个页面名字随便起一个,我们这里叫做CheckCode.aspx。创建了这个页面以后我们需要在后台写一些代码,就是在CheckCode.aspx.cs这个页面里面写代码,我们需要些如下代码以方便我们形成验证码
1 protected void Page_Load(object sender, EventArgs e) 2 { 3 CreateCheckCodeImage(GenerateCheckCode()); 4 } 5 private string GenerateCheckCode() 6 { 7 //创建整型型变量 8 int number; 9 //创建字符型变量 10 char code; 11 //创建字符串变量并初始化为空 12 string checkCode = String.Empty; 13 //创建Random对象 14 Random random = new Random(); 15 //使用For循环生成4个数字 16 for (int i = 0; i < 4; i++) 17 { 18 //生成一个随机数 19 number = random.Next(); 20 //将数字转换成为字符型 21 code = (char)('0' + (char)(number % 10)); 22 23 checkCode += code.ToString(); 24 } 25 //将生成的随机数添加到Cookies中 26 Response.Cookies.Add(new HttpCookie("CheckCode", checkCode)); 27 //返回字符串 28 return checkCode; 29 } 30 31 private void CreateCheckCodeImage(string checkCode) 32 { 33 //判断字符串不等于空和null 34 if (checkCode == null || checkCode.Trim() == String.Empty) 35 return; 36 //创建一个位图对象 37 System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22); 38 //创建Graphics对象 39 Graphics g = Graphics.FromImage(image); 40 41 try 42 { 43 //生成随机生成器 44 Random random = new Random(); 45 46 //清空图片背景色 47 g.Clear(Color.White); 48 49 //画图片的背景噪音线 50 for (int i = 0; i < 2; i++) 51 { 52 int x1 = random.Next(image.Width); 53 int x2 = random.Next(image.Width); 54 int y1 = random.Next(image.Height); 55 int y2 = random.Next(image.Height); 56 57 g.DrawLine(new Pen(Color.Black), x1, y1, x2, y2); 58 } 59 60 Font font = new System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold)); 61 System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2f, true); 62 g.DrawString(checkCode, font, brush, 2, 2); 63 64 //画图片的前景噪音点 65 for (int i = 0; i < 100; i++) 66 { 67 int x = random.Next(image.Width); 68 int y = random.Next(image.Height); 69 70 image.SetPixel(x, y, Color.FromArgb(random.Next())); 71 } 72 73 //画图片的边框线 74 g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1); 75 76 //将图片输出到页面上 77 System.IO.MemoryStream ms = new System.IO.MemoryStream(); 78 image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif); 79 Response.ClearContent(); 80 Response.ContentType = "image/Gif"; 81 Response.BinaryWrite(ms.ToArray()); 82 } 83 finally 84 { 85 g.Dispose(); 86 image.Dispose(); 87 }
在编写验证的时候一定要添加Using System.Drawing引用,在CheckCode.aspx.cs文件中输入如下的代码就可以了,就会形成相应的随机验证码。
在登录的页面采用如下的元素来对验证页面进行引用
1 <img style=" cursor:hand;width: 76px; height: 21px" id="imgCode" src="../CheckCode.aspx" alt="看不清,请点击我!" onclick="this.src=this.src+'?'" />
在src属性的后面输入对应的这个CheckCode.aspx这个页面的地址就可以了

浙公网安备 33010602011771号