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

首頁 > 編程 > .NET > 正文

ASP.NET驗證碼的寫法

2024-07-10 13:06:16
字體:
來源:轉載
供稿:網友

最大的網站源碼資源下載站,

using system.drawing;
using system.drawing.imaging;
private void page_load(object sender, system.eventargs e)
  {
   // 在此處放置用戶代碼以初始化頁面
   //rndnum是一個自定義函數
   string vnum=rndnum(4); //這里的數字4代表顯示的是4位的驗證字符串!
   session["vnum"]=vnum;
   validatecode(vnum);
  }
//生成圖像函數
  private void validatecode(string vnum)
  {
   int gheight=(int)(vnum.length * 11.5);
   //gheight為圖片寬度,根據字符長度自動更改圖片寬度
   system.drawing.bitmap img = new system.drawing.bitmap(gheight,20);
   graphics g = graphics.fromimage(img);
   g.drawstring(vnum,new system.drawing.font("arial",10),new system.drawing.solidbrush(color.red),3,3);
   //在矩形內繪制字串(字串,字體,畫筆顏色,左上x.左上y)
   system.io.memorystream ms=new system.io.memorystream();
   img.save(ms,system.drawing.imaging.imageformat.png);
   response.clearcontent(); //需要輸出圖象信息 要修改http頭
   response.contenttype="image/png";
   response.binarywrite(ms.toarray());
   g.dispose();
   img.dispose();
   response.end();
  }


http://community.csdn.net/expert/topic/3342/3342222.xml?temp=.5347406
//生成隨機數函數中從vchar數組中隨機抽取
//字母區分大小寫
public 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,w,x,y,z" ;
  
   string[] vcarray = vchar.split(',') ;
   string  vnum = "" ;//由于字符串很短,就不用stringbuilder了
   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) ;
    int t=rand.next(35);
    if (temp != -1 && temp == t)
    {
     return rndnum( vcodenum );
    }
    temp = t  ;
    vnum += vcarray[t];

   }
   return vnum ;
  }
-----------------------------------end--------------------------------------------

下面是login.aspx在在調用提交按鈕的響應事件中
public void doit(object sender, system.eventargs e)
  {
   if(page.isvalid)
   {
    
    string vnum;
    vnum=session["vnum"].tostring();       
    session.abandon();
    viewstate["vnum"]=vnum;
    if(this.vcode.text==viewstate["vnum"].tostring())
    {

     hover.manage.checklogin obj=new hover.manage.checklogin();
     string name=username.text;
     string password=formsauthentication.hashpasswordforstoringinconfigfile(pass.text.tostring(),"md5");
     if(!obj.checklogin(name,password))
     {
      response.redirect("../error.aspx?action=errorlogin");
      response.end();
      return;
     }
     else
     {
      session.add("adminname",name);
      session.add("adminpass",password);
      response.redirect("default.aspx");
      response.end();
      return;
     }
    
    }
    else
    {
     response.write("<script>alert(/"請輸入正確的附加碼!/");</script>");
    }
   }
  }
   如果提交過來的驗證字符串正確就驗證是否是合法用戶!
否則彈出提示返回登陸頁!你也可以簡化此頁!
   if(this.vcode.text==viewstate["vnum"].tostring())
    {
        response.write("驗證碼正確");
    }
   else
    {
        response.write("驗證碼錯誤!");
    }


 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 涪陵区| 九江县| 嘉义市| 兰西县| 兴化市| 绿春县| 思南县| 固安县| 衡山县| 夹江县| 永仁县| 抚宁县| 石泉县| 固镇县| 徐水县| 灵川县| 桃江县| 克什克腾旗| 成安县| 上饶市| 两当县| 吉林市| 自治县| 赞皇县| 都匀市| 旬阳县| 攀枝花市| 城步| 屏东县| 西吉县| 永仁县| 杭锦后旗| 兴化市| 阿瓦提县| 霍州市| 宁强县| 榕江县| 北流市| 农安县| 天水市| 铅山县|