要防止同一用戶同時登陸首頁應該記錄在線用戶的信息(這裡與用戶名為例)然後判斷正在登陸的用戶裡面是否已存在在這裡使用一個cache存放已經登陸的用戶名但是還有一個問題就是要知道用戶是什麼時候離開系統的呢?這就要定期清除cache中的內容了也就是設置一個cache的時間這個時間可以跟用戶的session值聯系起來剛好當用戶session值失效的時候該用戶在cache裡面的信息也會被清空這樣就達到了防止同時登陸的效果具體代碼如下
放在登陸成功的地方
以下是引用片段
string key = TextBoxText; //用戶名文本框設為cache關鍵字
string uer = ConvertToString(Cache[key]); //讀取cache中用戶相應的值
//判斷cache中是否有用戶的信息如果沒有相關的值說明用戶未登陸
if (uer == null || uer == StringEmpty)
{
//定義cache過期時間
TimeSpan SessTimeout = new TimeSpan( SystemWebHttpContextCurrentSessionTimeout );
//第一次登陸的時候插入一個用戶相關的cache值
HttpContextCurrentCacheInsert(key key null DateTimeMaxValue SessTimeout SystemWebCachingCacheItemPriorityNotRemovable null);
Session[ADMINID] = TextBoxText;
ResponseRedirect(mainaspx);
}
else
{
//重復登陸
ResponseWrite(<script>alert(您的賬號已經登陸!);windowlocation=loginaspx;</script>);
}
From:http://tw.wingwit.com/Article/program/ASP/201311/21820.html