亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Asp.net中防止用戶多次登錄的方法

2019-11-18 16:26:24
字體:
來源:轉載
供稿:網友

    在web開發時,有的系統要求同一個用戶在同一時間只能登錄一次,也就是如果一個用戶已經登錄了,在退出之前如果再次登錄的話需要報錯。
  常見的處理方法是,在用戶登錄時,判斷此用戶是否已經在application中存在,如果存在就報錯,不存在的話就加到Application中(Application是所有session共有的,整個web應用程序唯一的一個對象):

 

  string strUserId = txtUser.Text;
  ArrayList list = Application.Get("GLOBAL_USER_LIST") as ArrayList;
  if (list == null)
  {
  list = new ArrayList();
  }
  for (int i = 0; i < list.Count; i++)
  {
  if (strUserId == (list[i] as string))
  {
  //已經登錄了,提示錯誤信息
  lblError.Text = "此用戶已經登錄";
  return;
  }
  }
  list.Add(strUserId);
  Application.Add("GLOBAL_USER_LIST", list);


  當然這里使用Cache等保存也可以。

 

  接下來就是要在用戶退出的時候將此用戶從Application中去除,我們可以在Global.asax的Session_End事件中處理:

  void Session_End(object sender, EventArgs e)
  {
  // 在會話結束時運行的代碼。
  // 注意: 只有在 Web.config 文件中的 sessionstate 模式設置為
  // InPRoc 時,才會引發 Session_End 事件。如果會話模式設置為 StateServer
  // 或 SQLServer,則不會引發該事件。
  string strUserId = Session["SESSION_USER"] as string;
  ArrayList list = Application.Get("GLOBAL_USER_LIST") as ArrayList;
  if (strUserId != null && list != null)


  {
  list.Remove(strUserId);
  Application.Add("GLOBAL_USER_LIST", list);
  }
  }


  這些都沒有問題,有問題的就是當用戶直接點瀏覽器右上角的關閉按鈕時就有問題了。因為直接關閉的話,并不會立即觸發Session過期事件,也就是關閉瀏覽器后再來登錄就登不進去了。

 

  這里有兩種處理方式:


  1、使用javascript方式

  在每一個頁面中加入一段Javascript代碼:

  function window.onbeforeunload()
  {
  if (event.clientX>document.body.clientWidth && event.clientY<0||event.altKey){
  window.open("logout.aspx");
  }
  }

 

  由于onbeforeunload方法在瀏覽器關閉、刷新、頁面調轉等情況下都會被執行,所以需要判斷是點擊了關閉按鈕或是按下Alt+F4時才執行真正的關閉操作。


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


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

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

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

 

  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真正的過期時間是30分鐘
  {
  setTimeout("myRefresh()",30*1000); //30秒
  }
  }
  myRefresh();

 

  在web.config中設置

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


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

  Response.Expires = -1;


  保證不使用緩存,每次都能調用到這個頁面。

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲二区中文字幕| 国产精品视频公开费视频| 亚洲欧美一区二区激情| 亚洲男人天堂视频| 国产精品视频专区| 欧美综合一区第一页| 亚洲日韩中文字幕在线播放| 97在线精品视频| 欧美激情极品视频| 成人黄色av免费在线观看| 久久在线免费视频| 欧美精品成人在线| 日韩精品黄色网| 77777亚洲午夜久久多人| 国产美女搞久久| 日本aⅴ大伊香蕉精品视频| 国产在线播放不卡| 欧美视频一区二区三区…| 国产成人精品av在线| 欧美俄罗斯乱妇| 亚洲午夜色婷婷在线| 久久久999国产精品| 成人免费视频xnxx.com| 精品久久久久久| 国产亚洲精品综合一区91| 久久久精品2019中文字幕神马| 日av在线播放中文不卡| 亚洲成人黄色网址| 国产成人精品免费视频| 欧美一级淫片播放口| 国产热re99久久6国产精品| 欧美在线一级视频| 中文亚洲视频在线| 精品国内产的精品视频在线观看| 久久精品成人一区二区三区| 国产一区二区三区日韩欧美| 日韩暖暖在线视频| 国产精品亚洲欧美导航| 亚洲国产一区自拍| 伊人亚洲福利一区二区三区| 亚洲精品aⅴ中文字幕乱码| 欧美性xxxxhd| 日韩小视频在线观看| 亚洲欧美在线一区| 国产综合福利在线| 色噜噜狠狠狠综合曰曰曰| 欧美人在线观看| 中文精品99久久国产香蕉| 欧美与黑人午夜性猛交久久久| 久久精品视频导航| 国产精品一二三在线| 97超级碰碰碰久久久| 亚洲成人a级网| 精品在线欧美视频| 亚洲精品suv精品一区二区| 91久热免费在线视频| 不卡av日日日| 性色av香蕉一区二区| 久久男人资源视频| 欧美区二区三区| 欧美亚洲国产日本| 日韩成人中文字幕在线观看| 久久天天躁狠狠躁夜夜av| 欧美色xxxx| 亚洲va欧美va国产综合剧情| 国产精品日韩在线观看| 日韩欧美国产黄色| 久久综合伊人77777尤物| 久热精品视频在线免费观看| 欧美日韩精品在线| 久久久久www| 在线精品视频视频中文字幕| 久久久精品中文字幕| 亚洲一二三在线| 久久香蕉频线观| 国产精品女视频| 欧美韩国理论所午夜片917电影| 日韩中文字幕第一页| 精品久久国产精品| 欧美精品国产精品日韩精品| 高清欧美性猛交| 亚洲在线视频福利| 久久久久久中文字幕| 在线视频免费一区二区| 亚洲日韩第一页| 久久综合色88| 日本一区二三区好的精华液| 91精品在线看| 国产在线拍揄自揄视频不卡99| 欧美体内谢she精2性欧美| 日韩www在线| 欧美刺激性大交免费视频| 中国人与牲禽动交精品| xx视频.9999.com| 亚洲国产91精品在线观看| 国产热re99久久6国产精品| 国产做受69高潮| 日韩成人中文电影| 2019国产精品自在线拍国产不卡| 综合网日日天干夜夜久久| 亚洲护士老师的毛茸茸最新章节| 538国产精品一区二区免费视频| 91精品国产色综合久久不卡98口| 欧美第一页在线| 精品国产欧美一区二区三区成人| 国产精品夜色7777狼人| 亚洲自拍欧美另类| 国内成人精品视频| 久久精品91久久香蕉加勒比| 国产精品h在线观看| 国产精品久久久久久久久粉嫩av| 中文字幕精品网| 91成人在线观看国产| 亚洲欧美日韩中文视频| 久久久精品在线观看| 亚洲精品国产精品国产自| 欧美性黄网官网| 高清在线视频日韩欧美| 人人澡人人澡人人看欧美| 欧美日韩亚洲视频一区| 久久国产色av| 欧美大片在线影院| 欧美中在线观看| 亚洲一级片在线看| 国产精品普通话| 青草成人免费视频| 亚洲最大激情中文字幕| 久久成人人人人精品欧| 国产一区二区三区中文| 日韩在线免费视频| 日韩美女视频在线观看| 亚洲精品视频播放| 成人久久精品视频| 国产在线精品成人一区二区三区| 综合欧美国产视频二区| 国产91精品久久久久久久| 韩国精品美女www爽爽爽视频| 久久97久久97精品免视看| 91国产视频在线播放| 55夜色66夜色国产精品视频| 国产日韩欧美在线视频观看| 色小说视频一区| 国产女同一区二区| 国内精品久久久久影院 日本资源| 久久久久久久av| 久久久视频免费观看| 欧美激情一级精品国产| 最近2019年中文视频免费在线观看| 久久天天躁狠狠躁老女人| 国产一区二区三区三区在线观看| 日韩视频免费中文字幕| 久久精品中文字幕电影| 成人黄色av免费在线观看| 视频在线观看一区二区| 91视频免费在线| 亚洲日韩中文字幕在线播放| 精品成人国产在线观看男人呻吟| 日韩精品中文字幕视频在线| 亚洲欧美日本精品| 国产精品极品美女粉嫩高清在线| 欧美激情视频在线免费观看 欧美视频免费一| 日韩不卡中文字幕| 在线观看成人黄色| 亚洲精品女av网站|