源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

asp.net(C#) 生成随机验证码的代码

  • 时间:2020-07-18 08:37 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:asp.net(C#) 生成随机验证码的代码
常用的生成验证码程序 ,图片效果如下: [img]http://img.1sucai.cn/uploads/article/2018010710/20180107100102_0_91911.png[/img]   [img]http://img.1sucai.cn/uploads/article/2018010710/20180107100102_1_78393.png[/img]   [img]http://img.1sucai.cn/uploads/article/2018010710/20180107100103_2_59481.png[/img] 源程序如下:
[u]复制代码[/u] 代码如下:
using System;  using System.IO;  using System.Drawing;  using System.Drawing.Imaging;  using System.Text;  using System.Collections;  using System.Web;  using System.Web.UI;  using System.Web.UI.WebControls;  using System.Web.UI.WebControls.WebParts;  using System.Web.UI.HtmlControls;  /**//// <summary>  ///   /// ** asp.net(C#) 生成验证码 **  ///   ///  File: GenerateCheckCode.aspx.cs  ///   ///  Author: 周振兴 (Zxjay 飘遥)  ///   ///  E-Mail: tda7264@163.com  ///   ///  Date: 07-04-10  ///   /// </summary>  public partial class GenerateCheckCode : System.Web.UI.Page  ...{      protected void Page_Load(object sender, EventArgs e)      ...{          string chkCode = string.Empty;          //颜色列表,用于验证码、噪线、噪点          Color[] color =...{ Color.Black, Color.Red, Color.Blue, Color.Green, Color.Orange, Color.Brown, Color.Brown, Color.DarkBlue };          //字体列表,用于验证码          string[] font =...{ "Times New Roman", "MS Mincho", "Book Antiqua", "Gungsuh", "PMingLiU", "Impact" };          //验证码的字符集,去掉了一些容易混淆的字符          char[] character =...{ '2', '3', '4', '5', '6', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'R', 'S', 'T', 'W', 'X', 'Y' };          Random rnd = new Random();          //生成验证码字符串          for (int i = 0; i < 4; i++)          ...{              chkCode += character[rnd.Next(character.Length)];          }          Bitmap bmp = new Bitmap(100, 40);          Graphics g = Graphics.FromImage(bmp);          g.Clear(Color.White);          //画噪线          for (int i = 0; i < 10; i++)          ...{              int x1 = rnd.Next(100);              int y1 = rnd.Next(40);              int x2 = rnd.Next(100);              int y2 = rnd.Next(40);              Color clr = color[rnd.Next(color.Length)];              g.DrawLine(new Pen(clr), x1, y1, x2, y2);          }          //画验证码字符串          for (int i = 0; i < chkCode.Length; i++)          ...{              string fnt = font[rnd.Next(font.Length)];              Font ft = new Font(fnt, 18);              Color clr = color[rnd.Next(color.Length)];              g.DrawString(chkCode[i].ToString(), ft, new SolidBrush(clr), (float)i * 20 + 8, (float)8);          }          //画噪点          for (int i = 0; i < 100; i++)          ...{              int x = rnd.Next(bmp.Width);              int y = rnd.Next(bmp.Height);              Color clr = color[rnd.Next(color.Length)];              bmp.SetPixel(x, y, clr);          }          //清除该页输出缓存,设置该页无缓存          Response.Buffer = true;          Response.ExpiresAbsolute = System.DateTime.Now.AddMilliseconds(0);          Response.Expires = 0;          Response.CacheControl = "no-cache";          Response.AppendHeader("Pragma", "No-Cache");          //将验证码图片写入内存流,并将其以 "image/Png" 格式输出          MemoryStream ms = new MemoryStream();          try          ...{              bmp.Save(ms, ImageFormat.Png);              Response.ClearContent();              Response.ContentType = "image/Png";              Response.BinaryWrite(ms.ToArray());          }          finally          ...{              //显式释放资源              bmp.Dispose();              g.Dispose();          }      }  } 
使用方法如下: 新建名为 GenerateCheckCode.aspx 的文件,将上述代码拷贝到代码文件 GenerateCheckCode.aspx.cs  在需要验证码的地方放置语句 <asp:Image ID="img1" runat="server" ImageUrl="~/GenerateCheckCode.aspx" /> 即可。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部