国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

asp.net驗證碼生成類(參考)

2024-07-10 12:56:15
字體:
來源:轉載
供稿:網友
**********************created by chen**************************

*如果你覺得本人的文章好,要引用請尊重著作人的勞動果實,說明

*出處以及原創作者,thank you!!!   email:aishen944-sohu.com

*******************************************************************/
using system;
using system.drawing;
using system.drawing.imaging;
using system.web.ui;
using system.drawing.drawing2d;
using system.io;
namespace validate
{
 /// <summary>
 /// 生成驗證碼的類
 /// </summary>
 public class validatenumber
 {
  public validatenumber()
  {
  }
  /// <summary>
  /// 驗證碼的最大長度
  /// </summary>
  public int maxlength
  {
   get{return 10;}
  }
  /// <summary>
  /// 驗證碼的最小長度
  /// </summary>
  public int minlength
  {
   get{return 1;}
  }
  /// <summary>
  /// 生成驗證碼
  /// </summary>
  /// <param name="length">指定驗證碼的長度</param>
  /// <returns></returns>
  public string createvalidatenumber(int length)
  {
   int[] randmembers=new int[length];
   int[] validatenums=new int[length];
   string validatenumberstr="";
   //生成起始序列值
   int seekseek=unchecked((int)datetime.now.ticks);
   random seekrand=new random(seekseek);
   int beginseek=(int)seekrand.next(0,int32.maxvalue-length*10000);
   int[] seeks=new int[length];
   for(int i=0;i<length;i++)
   {
    beginseek+=10000;
    seeks[i]=beginseek;
   }
   //生成隨機數字
   for(int i=0;i<length;i++)
   {
    random rand=new random(seeks[i]);
    int pownum=1*(int)math.pow(10,length);
    randmembers[i]=rand.next(pownum,int32.maxvalue);
   }
   //抽取隨機數字
   for(int i=0;i<length;i++)
   {
    string numstr=randmembers[i].tostring();
    int numlength=numstr.length;
    random rand=new random();
    int numposition=rand.next(0,numlength-1);
    validatenums[i]=int32.parse(numstr.substring(numposition,1));
   }
   //生成驗證碼
   for(int i=0;i<length;i++)
   {
    validatenumberstr+=validatenums[i].tostring();
   }
   return validatenumberstr;
  }
  /// <summary>
  /// 創建驗證碼的圖片
  /// </summary>
  /// <param name="containspage">要輸出到的page對象</param>
  /// <param name="validatenum">驗證碼</param>
  public void createvalidategraphic(page containspage,string validatenum)
  {
   bitmap image=new bitmap((int)math.ceiling(validatenum.length*12.5),22);
   graphics g=graphics.fromimage(image);
   try
   {
    //生成隨機生成器
    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,y1,x2,y2);
    }
    font font=new font("arial",12,(fontstyle.bold|fontstyle.italic));
    lineargradientbrush brush=new lineargradientbrush(new rectangle(0,0,image.width,image.height),
     color.blue,color.darkred,1.2f,true);
    g.drawstring(validatenum,font,brush,3,2);
    //畫圖片的前景干擾點
    for(int i=0;i<100;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);
    //保存圖片數據
    memorystream stream=new memorystream();
    image.save(stream,imageformat.jpeg);
    //輸出圖片
    containspage.response.clear();
    containspage.response.contenttype="image/jpeg";
    containspage.response.binarywrite(stream.toarray());
   }
   finally
   {
    g.dispose();
    image.dispose();
   }
  }
  /// <summary>
  /// 得到驗證碼圖片的長度
  /// </summary>
  /// <param name="validatenumlength">驗證碼的長度</param>
  /// <returns></returns>
  public static int getimagewidth(int validatenumlength)
  {
   return (int)(validatenumlength*12.5);
  }
  /// <summary>
  /// 得到驗證碼的高度
  /// </summary>
  /// <returns></returns>
  public static double getimageheight()
  {
   return 22.5;
  }
 }
}


商業源碼熱門下載www.html.org.cn

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桑日县| 滦平县| 河东区| 久治县| 鄂尔多斯市| 上林县| 安塞县| 崇明县| 英吉沙县| 寿光市| 江门市| 丽江市| 顺平县| 康保县| 元谋县| 惠水县| 通化市| 称多县| 建德市| 沁源县| 陆川县| 巴楚县| 禹州市| 库尔勒市| 贞丰县| 汽车| 聊城市| 郯城县| 紫云| 沅江市| 年辖:市辖区| 正宁县| 乐都县| 防城港市| 老河口市| 喜德县| 永昌县| 濉溪县| 常德市| 攀枝花市| 昭通市|