.NET 程序獲取驗(yàn)證碼方法(一)
2010/10/28 11:42:02

  
  1、在web項(xiàng)目中添加一個(gè)類,如"createimage.cs",然后將我公布的源代碼copy進(jìn)去;

  2、再新建一個(gè)web窗體,如"image.aspx",在page_load中加入代碼 "createimage.drawimage ();"當(dāng)然別忘了加上對(duì)類的引用哦!!

  3、在頁(yè)面的合適位置上(你想放驗(yàn)證碼的位置)上加上如下javascript代碼就ok 了,

  ///

  /// 驗(yàn)證碼模塊

  ///

  public class createimage

  {

  public static void drawimage()

  {

  createimage img=new createimage();

  httpcontext.current.session["checkcode"]=img.rndnum(4);

  img.createimages(httpcontext.current.session["checkcode"].tostring());

  }

  ///

  /// 生成驗(yàn)證圖片

  ///

  /// 驗(yàn)證字符

  private void createimages(string checkcode)

  {

  int iwidth = (int)(checkcode.length * 13);

  system.drawing.bitmap image = new system.drawing.bitmap(iwidth, 23);

  graphics g = graphics.fromimage(image);

  g.clear(color.white);

  //定義顏色

  color[] c = {color.black,color.red,color.darkblue,color.green,color.orange,color.brown,color.darkcyan,color.purple};

  //定義字體

  string[] font = {"verdana","microsoft sans serif","comic sans ms","arial","宋體"};

  random rand = new random();

  //隨機(jī)輸出噪點(diǎn)

  for(int i=0;i<50;i++)

  {

  int x = rand.next(image.width);

  int y = rand.next(image.height);

  g.drawrectangle(new pen(color.lightgray, 0),x,y,1,1);

  }

  //輸出不同字體和顏色的驗(yàn)證碼字符

  for(int i=0;i

  {

  int cindex = rand.next(7);

  int findex = rand.next(5);

  font f = new system.drawing.font(font[findex], 10, system.drawing.fontstyle.bold);

  brush b = new system.drawing.solidbrush(c[cindex]);

  int ii=4;

  if((i+1)%2==0)

  {

  ii=2;

  }

  g.drawstring(checkcode.substring(i,1), f, b, 3+(i*12), ii);

  }

  //畫一個(gè)邊框

  g.drawrectangle(new pen(color.black,0),0,0,image.width-1,image.height-1);

  //輸出到瀏覽器

  system.io.memorystream ms = new system.io.memorystream();

  image.save(ms,system.drawing.imaging.imageformat.jpeg);

  httpcontext.current.response.clearcontent();

  //response.clearcontent();

  httpcontext.current.response.contenttype = "image/jpeg";

  httpcontext.current.response.binarywrite(ms.toarray());

  g.dispose();

  image.dispose();

  }

  ///

  /// 生成隨機(jī)的字母

  ///

  /// 生成字母的個(gè)數(shù)

  /// string

  private string rndnum(int vcodenum)

  {

  string vchar = "0,1,2,3,4,5,6,7,8,9" ;

  string[] vcarray = vchar.split(',') ;

  string vnum = "" ; //由于字符串很短,就不用stringbuilder了

  int temp = -1 ; //記錄上次隨機(jī)數(shù)值,盡量避免生產(chǎn)幾個(gè)一樣的隨機(jī)數(shù)

  //采用一個(gè)簡(jiǎn)單的算法以保證生成隨機(jī)數(shù)的不同

  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(vcarray.length ) ;

  if (temp

下一頁(yè)
返回列表
返回首頁(yè) 主站蜘蛛池模板: 538视频在线观看| 色噜噜狠狠色综合免费视频| 国产精品久久久久国产精品 | 日日噜噜夜夜狠狠va视频| 欧美午夜理伦三级在线观看| 极品肌肉军警h文| 天天狠狠色噜噜| 性欧美videofree另类超大| 国产精品东北一极毛片| 卡一卡二卡三精品| 亚洲人成无码网站久久99热国产| 免费视频专区一国产盗摄| 午夜时刻免费实验区观看| 国产三级日产三级韩国三级| 国产日韩美国成人| 国产看午夜精品理论片| 国产精品亚洲精品日韩电影| 在线播放真实国产乱子伦| 女人与禽交视频免费看| 巨肉超污巨黄h文小短文| 婷婷五月综合缴情在线视频| 奇米色在线视频| 女人让男人直接桶| 奇米精品视频一区二区三区| 天天干天天射天天操| 孩交精品xxxx视频视频| 好吊妞998视频免费观看在线| 小小的日本电影在线观看免费版| 成人福利app| 很黄很刺激很爽的免费视频| 好男人视频网站| 女人张开腿让男人桶免费网站| 国内精品一战二战| 国产综合视频在线观看一区| 国产成人综合日韩精品无| 国产在线a不卡免费视频| 午夜理伦三级播放| 亚洲精品国产电影| 亚洲中字慕日产2020| 久久9精品久久久| √天堂中文在线最新版8下载|