ASP.NET生成图形验证码的方法详解__第1页
ASP.NET生成图形验证码的方法详解__第2页
ASP.NET生成图形验证码的方法详解__第3页
ASP.NET生成图形验证码的方法详解__第4页
ASP.NET生成图形验证码的方法详解__第5页
免费预览已结束,剩余2页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ASP.NET生成图形验证码的方法详解_ 本文实例讲解并描述了ASP.NET生成图形验证码的方法。分享给大家供大家参考,具体如下: 通常生成一个图形验证码主要 有3个步骤: (1)随机产生一个长度为N的随机字符串,N的值可由开发可由开发人员自行设置。该字符串可以包含数字、字母等。 (2)将随机生成的字符串创建成图片,并显示。 (3)保存验证码。 新建一个页面为default.aspx, 放置一个TextBox控件和一个Image控件,TextBox控件用于输入生成的字符串,Image控件用于显示字符串,它的图片就为生成的图形验证码imageUrl=“/default.aspx”; defaul

2、t.aspx页面的源代码为: form id=form1 runat=server div asp:TextBox ID=TextBox1 runat=server/asp:TextBox asp:Image ID=Image1 imageUrl=“/default.aspx” runat=server / /div /form 图形验证码的代码为: using System; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security

3、; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.Drawing; public partial class _Default : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) st

4、ring validateNum = CreateRandomNum(4); CreateImage(validateNum); SessionValidateNum = validateNum; /生产随机数 private string CreateRandomNum(int NumCount) string allChar = 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,O,P,Q,R,S,T,U,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,m,n,o,p,q,s,t,u,w,x,y,z; string allCharArray =

5、 allChar.Split(,);/拆分成数组 string randomNum = ; int temp = -1; /记录上次随机数的数值,尽量避开产生几个相同的随机数 Random rand = new Random(); for (int i = 0; i NumCount; i+) if (temp != -1) rand = new Random(i*temp*(int)DateTime.Now.Ticks); int t = rand.Next(35); if (temp = t) return CreateRandomNum(NumCount); temp = t; rand

6、omNum += allCharArrayt; return randomNum; /生产图片 private void CreateImage(string validateNum) if (validateNum = null | validateNum.Trim() = string.Empty) return; /生成BitMap图像 System.Drawing.Bitmap image = new System.Drawing.Bitmap(validateNum.Length*12+12,22); Graphics g = Graphics.FromImage(image); t

7、ry /生成随机生成器 Random random = new Random(); /清空图片背景 g.Clear(Color.White); /画图片的背景噪音线 for (int i = 0; i 25; i+) int x1 = random.Next(image.Width); int x2 = random.Next(image.Width); int y1 = random.Next(image.Height); int y2 = random.Next(image.Height); g.DrawLine(new Pen(Color.Silver),x1,x2,y1,y2); Fo

8、nt font = new System.Drawing.Font(Arial,12,(System.Drawing.FontStyle.Bold|System.Drawing.FontStyle.Italic); 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); g.DrawStrin

9、g(validateNum,font,brush ,2,2); /画图片的前景噪音点 for( int i=0;i100;i+) int x=random.Next(image.Width); int y=random.Next(image.Height); image.SetPixel(x,y,Color.FromArgb(random.Next(); /画图片的边框线 g.DrawRectangle(new Pen(Color.Silver),0,0,image.Width-1,image.Height-1); System.IO.MemoryStream ms=new System.IO.MemoryStream(); /将图像保存到指定流 image.Save(ms,System.Drawing.Imaging.ImageFormat.Gif); Respo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论