2 回答

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊
如果嚴(yán)密性要求非常高的話,比如說金融系統(tǒng)或者訂票系統(tǒng)等,可能還需要在用戶表中追加一個(gè)時(shí)間戳列或者rowversion列,每次登陸后更新完最后登陸時(shí)間后,拿到時(shí)間戳扔到session中,以后拿時(shí)間戳來比較。這樣可保絕對(duì)的沒問題。畢竟時(shí)間還有個(gè)精確度的問題,如果是sql server的話大概是3.3333333...毫秒,在理論上還有多個(gè)用戶取到同一時(shí)間的可能。

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊
用戶登陸成功后,將登陸時(shí)間保存兩份:一份存入數(shù)據(jù)庫,一份存入登錄用戶的 Session(或 Cookie)。
用戶訪問頁面時(shí)(登陸頁面除外),對(duì)比這兩個(gè)時(shí)間,如果不相等(一般是 Session 或 Cookie 中的時(shí)間早于 數(shù)據(jù)庫中的時(shí)間),說明已在其它地方登陸。
可如下將當(dāng)前用戶踢出:
Session.Abandon();
FormsAuthentication.SignOut();
- 2 回答
- 0 關(guān)注
- 444 瀏覽
添加回答
舉報(bào)