2016-12-25 51 views

回答

2

您可以使用Session.Abandon()Clear()放棄當前會話,但如果有多人登錄時使用的同一個地址,這不會解決這個問題。

你必須建立檢測;例如,您可以更新代表您的用戶的表上的標誌,然後在其他用戶的會話中定期檢查表是否重新登錄。或者當用戶登錄時,在數據庫表中創建令牌截止日期;將該令牌與Cookie中的用戶相關聯。註銷或重新登錄時,可能會使與該電子郵件地址關聯的令牌無效,並且每個用戶在嘗試訪問應用程序時可能會被應用程序拒絕檢查令牌是否已過期。

1

Abandon方法應該工作(MSDN):

Session.Abandon(); 

如果你想刪除的會話中使用的特定項目(MSDN):

Session.Remove("YourItem"); 

如果你只是想清除你可以做的價值:

Session["YourItem"] = null; 

如果你wan t清除所有鍵:

Session.Clear(); 

如果這些都不適合你,那麼可怕的事情正在發生。我會檢查以確定您分配值的位置,並確認清除值後它不會被重新分配。

簡單的檢查,做到:

Session["YourKey"] = "Test"; // creates the key 
Session.Remove("YourKey"); // removes the key 
bool gone = (Session["YourKey"] == null); // tests that the remove worked