技术贴:asp.net实现唯一账户在线 禁止同一帐号同时在线 asp.net实现您的帐号在别处登录,您已被迫下线!...
生活随笔
收集整理的這篇文章主要介紹了
技术贴:asp.net实现唯一账户在线 禁止同一帐号同时在线 asp.net实现您的帐号在别处登录,您已被迫下线!...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
技術貼:asp.net實現唯一賬戶在線 禁止同一帳號同時在線 asp.net實現您的帳號在別處登錄,您已被迫下線!
原文 http://www.cnblogs.com/cdemo/p/3386534.html
技術要點:
Application 全局變量的使用
hashtable 的使用
Session 對應唯一sessionID 標志會話狀態
webpage 繼承 BasePage的技術?
整體比較簡單,主要是思想
?
private void SetOnlineInfo(HttpContext context, string username){Hashtable hOnline = (Hashtable)context.Application["Online"];//讀取全局變量if (hOnline != null){IDictionaryEnumerator idE = hOnline.GetEnumerator();string strKey = "";while (idE.MoveNext()){if (idE.Value != null && idE.Value.ToString().Equals(username))//如果當前用戶已經登錄, {//already login strKey = idE.Key.ToString();hOnline[strKey] = "XX";//將當前用戶已經在全局變量中的值設置為XXbreak;}}}else{hOnline = new Hashtable();}hOnline[context.Session.SessionID] = username;//初始化當前用戶的 context.Application.Lock();context.Application["Online"] = hOnline;context.Application.UnLock();} protected void CheckOtherLogin(HttpContext context){Hashtable hOnline = (Hashtable)Application["Online"];//獲取已經存儲的application值if (hOnline != null){IDictionaryEnumerator idE = hOnline.GetEnumerator();while (idE.MoveNext()){if (idE.Key != null && idE.Key.ToString().Equals(context.Session.SessionID)){//already loginif (idE.Value != null && "XX".Equals(idE.Value.ToString()))//說明在別處登錄 {hOnline.Remove(Session.SessionID);context.Application.Lock();context.Application["Online"] = hOnline;context.Application.UnLock();context.Response.Write("<script>alert('你的帳號已在別處登陸,你被強迫下線!');window.location.href='login.aspx';</script>");//退出當前到登錄頁面 context.Response.End();}}}}}?demo源碼下載?
posted on 2013-10-24 18:35 NET未來之路 閱讀(...) 評論(...) 編輯 收藏轉載于:https://www.cnblogs.com/lonelyxmas/p/3386625.html
總結
以上是生活随笔為你收集整理的技术贴:asp.net实现唯一账户在线 禁止同一帐号同时在线 asp.net实现您的帐号在别处登录,您已被迫下线!...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一个墙纸还可以改变使用裁剪工具改变图像
- 下一篇: .NET简谈接口