ASP.NET如何防止用戶多次登錄(2)_.Net教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:ASP.NET 2.0中文驗(yàn)證碼的實(shí)現(xiàn)
      在判斷的時(shí)候只要把取得的文本框的值與Session[valicode] 進(jìn)行判斷是否一致就行了。 //建立位圖對象 Bitmap NewbitMap = new Bitmap(90, 22, PixelFormat.Format32bppArgb); //根據(jù)上面創(chuàng)建的位置對象創(chuàng)建繪圖面 Graphics g = Graphics.FromImage(NewbitMap)

      然后在logout.aspx的Page_Load中寫和Session_End相同的方法,同時(shí)在logout.aspx中加入事件:onload="javascript:window.close()"

      但是這樣還是有問題,javascript在不同的瀏覽器中可能有不同的行為,還有就是當(dāng)通過文件->關(guān)閉時(shí)沒有判斷到。

      2、使用xmlhttp方法(這種方法測試下來沒有問題)

      在每個(gè)頁面中加入如下的javascript(這些javascript也可以寫在共通里,每個(gè)頁面引入就可以了)

      以下是引用片段:

      var x=0;

      function myRefresh()

      {

      var httpRequest = new ActiveXObject("microsoft.xmlhttp");

      httpRequest.open("GET", "test.aspx", false);

      httpRequest.send(null);

      x ;

      if(x< 60) //60次,也就是Session真正的過期時(shí)間是30分鐘

      {

      setTimeout("myRefresh()",30*1000); //30秒

      }

      }

      myRefresh();

      在web.config中設(shè)置

      以下是引用片段:

      < sessionState mode="InProc" timeout="1">< /sessionState>

      test.aspx頁面就是一個(gè)空頁面,只不過需要在Page_Load中加入:

      以下是引用片段:

      Response.Expires = -1;

      保證不使用緩存,每次都能調(diào)用到這個(gè)頁面。

      原理就是:設(shè)置Session的過期時(shí)間是一分鐘,然后在每個(gè)頁面上定時(shí)每30秒連接一次測試頁面,保持Session有效,總共連60次,也就是30分鐘。如果30分鐘后用戶還沒有操作,Session就會(huì)過期。當(dāng)然,如果用戶直接關(guān)閉瀏覽器,那么一分鐘后Session也會(huì)過期。這樣就可以滿足要求了。

      分享:解讀ASP.NET網(wǎng)絡(luò)編程中經(jīng)常用到的27個(gè)函數(shù)集
      1、DateTime 數(shù)字型 以下是引用片段: System.DateTime currentTime=new System.DateTime(); 1.1 取當(dāng)前年月日時(shí)分秒 currentTime=System.DateTime.Now; 1.2 取當(dāng)前年 int 年=currentTime.Year; 1.3 取當(dāng)前月 int 月=currentTime.Month; 1.4 取當(dāng)前日 int 日

      共2頁上一頁12下一頁
      來源:模板無憂//所屬分類:.Net教程/更新時(shí)間:2009-05-17
      相關(guān).Net教程