asp.net如何生成图片验证码
生活随笔
收集整理的這篇文章主要介紹了
asp.net如何生成图片验证码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
新建一個頁面image.aspx,添加命名空間:
using System.Drawing.Imaging;using System.IO;
?? 然后在Page_load事件拷入如下代碼:
???//生成4位的驗證碼???string tmp = RndNum(4);
??? HttpCookie a = new HttpCookie("ImageV",tmp);???
??? Response.Cookies.Add(a);
???this.ValidateCode(tmp);
?? 接下來向該頁面添加兩個方法:
private void ValidateCode(string VNum)??{
??? Bitmap Img=null;
??? Graphics g=null;
??? MemoryStream ms=null;
???int gheight=VNum.Length*12;
??? Img=new Bitmap(gheight,25);
??? g=Graphics.FromImage(Img);
???//背景顏色
??? g.Clear(Color.White);
???//文字字體
??? Font f=new Font("Arial Black",10);
???//文字顏色
??? SolidBrush s=new SolidBrush(Color.Black);
??? g.DrawString(VNum,f,s,3,3);
??? ms=new MemoryStream();
??? Img.Save(ms,ImageFormat.Jpeg);
??? Response.ClearContent();
??? Response.ContentType="image/Jpeg";
??? Response.BinaryWrite(ms.ToArray());
???
??? g.Dispose();
??? Img.Dispose();
??? Response.End();
?? }
??private string RndNum(int VcodeNum)
??{
???string Vchar="0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p"+
????",q,r,s,t,u,v,w,x,y,z";
???string[] VcArray=Vchar.Split(new Char [] {','});
???string VNum="";
???int temp=-1;
??? Random rand=new Random();
???
???for(int i=1;i<VcodeNum+1;i++)
???{
????if(temp!=-1)
????{
????? rand=new Random(i*temp*unchecked((int)DateTime.Now.Ticks));
???? }
???
????int t=rand.Next(35);
????if(temp!=-1&&temp==t)
????{
?????return RndNum(VcodeNum);
???? }
???? temp=t;
???? VNum+=VcArray[t];
??? }
???return VNum;
?? }
????? 如果要在頁面a.aspx生成驗證碼,則在該頁面添加一個圖片控件,假設命名為:ImageButton1,然后在page_Load事件中寫如下代碼:
ImageButton1.ImageUrl = "image.aspx";???? 這樣就可以生成驗證碼了,image.aspx頁面可以隨便放在哪里,不過要注意ImageButton1.ImageUrl 要寫對,同級可以直接寫image.aspx,上一級寫../image.aspx,很方便吧。
轉載于:https://www.cnblogs.com/tiantangwater/archive/2008/12/24/1361568.html
總結
以上是生活随笔為你收集整理的asp.net如何生成图片验证码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux下下载文件到谷歌云盘,如何使用
- 下一篇: asp.net ajax控件工具集 Au