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

首頁 > 編程 > C# > 正文

C#有效防止同一賬號多次登錄(附三種方法)

2020-01-24 01:22:50
字體:
來源:轉載
供稿:網友

本文先為大家介紹如何利用緩存Cache方便地實現此功能。
Cache與Session這二個狀態對像的其中有一個不同之處,Cache是一個全局對象,作用的范圍是整個應用程序,所有用戶;
而Session是一個用戶會話對象,是局部對象,用于保存單個用戶的信息。
只要把每次用戶登錄后的用戶信息存儲在Cache中,把Cache的Key名設為用戶的登錄名,Cache的過期時間設置為Session的超時時間,在用戶每次登錄的時候去判斷一下Cache[用戶名]是否有值,如果沒有值,證明該用戶沒有登錄,否則該用戶已登錄。
為大家舉一個例子吧。

/// <summary>/// 防止多次登錄/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void Button1_Click(object sender, System.EventArgs e){string strUser = string.Empty;string strCacheKey = this.TextBox1.Text;strUser = Convert.ToString(Cache[strCacheKey]);if (strUser == string.Empty){TimeSpan SessTimeOut = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);Cache.Insert(strCacheKey, strCacheKey, null, DateTime.MaxValue, SessTimeOut, CacheItemPriority.NotRemovable, null);Session["User"] = strCacheKey;this.Label1.Text = Session["User"].ToString();}else{this.Label1.Text = "這個用戶已經登錄!";}}

在網上又找了下,發現了另外兩種解決方案:
1、通過數據庫狀態位判斷該用戶是否已經登錄。
2、利用session監聽器監聽每一個登錄用戶的登錄情況。
第一種解決方案很簡單,但需要考慮用戶非正常退出的情況,如直接關閉瀏覽器等等,可用性較低。
接下來,主要介紹第二種方案的具體實現:利用session監聽器監聽每一個登錄用戶的登錄情況。
A.用戶登錄后,先去數據庫查詢該登錄名是否存在、是否鎖定,在登錄名存在且非鎖定的情況下,從application內置作用域對象中取出所有的登錄信息,查看該登錄名是否已經登錄,如果登錄了,就友好提示下;反之表示可以登錄,將該登錄信息保存在application中。
主要代碼如下:

////所有的登錄信息Map<String, String> loginUserMap = (Map<String, String>) super.getApplicationAttr(Constant.LOGIN_USER_MAP);boolean isExist = false;String sessionId = super.getSessionId(false);if(loginUserMap==null){loginUserMap = new HashMap<String, String>();}for (String username : loginUserMap.keySet()) {//判斷是否已經保存該登錄用戶的信息,是否為同一個用戶進行重復登錄if(!username.equals(user.getFuUserName()) || loginUserMap.containsValue(sessionId)){continue;}isExist = true;break;}if(isExist){//該用戶已登錄//}else {//該用戶沒有登錄loginUserMap.put(result.getFuUserName(), sessionId);//}//

B.登錄考慮完之后,來考慮考慮退出。
用戶正常退出時,我們需要將該用戶的登錄信息從session中移除。我們可以寫一個Session監聽器,監聽sessioon銷毀的時候,我們將登錄的用戶注銷掉,也就是從application中移除。表示該用戶已經下線了。

主要代碼如下:

//public void sessionDestroyed(HttpSessionEvent event) {   //    //在session銷毀的時候 把loginUserMap中保存的鍵值對清除   User user = (User)event.getSession().getAttribute("loginUser");   if(user!=null){     Map<String, String> loginUserMap = (Map<String, String>)event.getSession().getServletContext().getAttribute("loginUserMap");     loginUserMap.remove(user.getFuUserName()); event.getSession().getServletContext().setAttribute("loginUserMap",loginUserMap);   }   //} //

另外,還有一個問題,如果說登錄的用戶突然關閉了瀏覽器而沒有點擊退出按鈕。那么可以利用beforeunload 事件,在瀏覽器刷新或者關閉的時候觸發。

//在刷新或關閉時調用的事件$(window).bind('beforeunload',function(){ $.ajax({  url:"${ctx}/system/user/user!logout.action",  type:"post",  success:function(){   alert("您已退出登錄");  } });});

這樣基本就實現了需求。
大家可以把上面代碼運用到自己的項目中,檢測一下,有效的防止同一賬號的重復登錄,希望大家喜歡這些方法。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人深夜直播免费观看| 68精品国产免费久久久久久婷婷| 日韩电影中文字幕在线观看| 色悠悠国产精品| 日产日韩在线亚洲欧美| 日韩美女写真福利在线观看| 国产成人精品综合| 亚洲视频在线观看免费| 久久免费视频在线观看| 日韩av网站大全| 国产精品18久久久久久首页狼| 精品色蜜蜜精品视频在线观看| 欧美性猛交xxxx乱大交蜜桃| 亚洲精品理论电影| 欧美激情视频一区二区三区不卡| 欧美裸体视频网站| 亚洲网在线观看| 亚洲a级在线播放观看| 欧美视频一区二区三区…| 精品久久久久久久中文字幕| 97碰碰碰免费色视频| 亚洲桃花岛网站| 久久久午夜视频| 最近中文字幕日韩精品| 97精品欧美一区二区三区| 久久久久中文字幕| xvideos亚洲| 精品久久香蕉国产线看观看亚洲| 欧美性xxxx18| 国产va免费精品高清在线观看| 成人精品视频99在线观看免费| 日韩av免费看| 日韩高清电影好看的电视剧电影| 久久亚洲私人国产精品va| 国产婷婷成人久久av免费高清| 欧美精品手机在线| 久久久久久这里只有精品| 在线成人一区二区| 亚洲天堂av在线免费| 久久综合电影一区| 国产va免费精品高清在线| 久久久久久久久久久成人| 亚洲iv一区二区三区| 国产精品香蕉国产| 国产综合福利在线| 久久亚洲精品一区二区| 亚洲天堂网在线观看| 主播福利视频一区| 国产精品中文字幕久久久| 亚洲天堂男人天堂| 久久久精品中文字幕| 欧美高清videos高潮hd| 狠狠躁夜夜躁人人爽天天天天97| 亚洲精品久久久久中文字幕二区| 45www国产精品网站| 国产欧美韩国高清| 成人久久久久爱| 欧美日本高清一区| 欧美美女操人视频| 91国产精品视频在线| 国产精品白嫩初高中害羞小美女| 欧美性猛交xxxx乱大交| 久久免费精品日本久久中文字幕| 日本不卡免费高清视频| 国产视频亚洲精品| 国产成人福利夜色影视| 亚洲第一综合天堂另类专| 欧美孕妇与黑人孕交| 国产精品高潮呻吟久久av黑人| 欧美极度另类性三渗透| 庆余年2免费日韩剧观看大牛| 欧美日韩加勒比精品一区| 国产丝袜精品视频| 亚洲欧洲日本专区| 日韩久久精品成人| 91精品视频大全| 亚洲精品小视频在线观看| 亚洲欧美激情四射在线日| 午夜精品理论片| 国产欧美一区二区三区视频| 亚洲级视频在线观看免费1级| 91香蕉嫩草影院入口| 亚洲自拍小视频| 欧美噜噜久久久xxx| 亚洲最大成人在线| 综合激情国产一区| 亚洲欧美日韩图片| 欧美日韩国产成人在线| 一区二区三区 在线观看视| 色综合天天综合网国产成人网| 国产成人精品视频在线观看| 欧美裸体xxxxx| 亚洲xxx视频| 精品国产乱码久久久久久婷婷| 亚洲精品有码在线| 亚洲国产日韩欧美在线图片| 国产精品第8页| 一区二区亚洲欧洲国产日韩| 国产欧美一区二区三区在线| 欧美日韩国产一中文字不卡| 国产精品igao视频| 日韩风俗一区 二区| 日韩毛片中文字幕| 亚洲成人av片| 美女av一区二区三区| 欧美最猛性xxxxx亚洲精品| 夜夜嗨av色一区二区不卡| 欧美放荡办公室videos4k| 色中色综合影院手机版在线观看| 亚洲成人a**站| 亚洲精品不卡在线| 97在线看福利| 亚洲国产日韩欧美综合久久| 久久频这里精品99香蕉| 日韩精品高清视频| 国模视频一区二区| 亚洲人成电影网站| 日韩精品在线影院| 国产ts人妖一区二区三区| 尤物精品国产第一福利三区| 国产精品久久久精品| 欧美午夜无遮挡| 在线观看视频亚洲| 中文字幕欧美日韩va免费视频| 91久久精品国产91性色| 日韩精品久久久久久久玫瑰园| 国产精品88a∨| 日韩人体视频一二区| 欧美精品videos另类日本| 成人av番号网| 国产日韩在线看片| 亚洲精美色品网站| 日韩亚洲一区二区| 亚洲人成77777在线观看网| 日韩欧美国产中文字幕| 中文字幕一区日韩电影| 丝袜亚洲欧美日韩综合| 成人免费高清完整版在线观看| 久久不射热爱视频精品| 狠狠躁18三区二区一区| 日韩暖暖在线视频| 全球成人中文在线| 亚洲网在线观看| 久久久久久久香蕉网| 精品露脸国产偷人在视频| 欧美一区三区三区高中清蜜桃| 日韩av影视综合网| 午夜精品久久久久久久男人的天堂| 国产精品视频区| 亚洲欧美一区二区三区四区| 91免费人成网站在线观看18| 亚洲全黄一级网站| 亚洲欧美综合精品久久成人| 色婷婷av一区二区三区在线观看| 亚洲精品久久久一区二区三区| 国产精品99久久久久久www| 久久精品亚洲精品| 中文字幕亚洲自拍| 热久久视久久精品18亚洲精品| 亚洲福利视频网站| 国产69精品99久久久久久宅男| 亚洲自拍欧美另类| 亚洲视屏在线播放| 亚洲va码欧洲m码|