asp.net如何生成图片验证码
  eCO46Rq6uUzg 2023年12月06日 24 0

新建一个页面image.aspx,添加命名空间:


using System.Drawing.Imaging;

using System.IO;


然后在Page_load事件拷入如下代码:


  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,很方便吧。


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月06日 0

暂无评论

推荐阅读
eCO46Rq6uUzg