2015-10-17 66 views
0

後,我有一個使用Asp.net會員用戶authenticaton Web應用程序。而且據我瞭解,當用戶登錄時,關於該用戶的信息存儲在會話,但是當我重新啓動服務器的用戶仍然登錄。登錄信息保持服務器重啓

不應該與會話服務器重啓被刪除?我不明白的用戶是如何仍然登錄...

+0

爲什麼你認爲它是存儲在會話中?你的代碼是否在會話中寫入任何內容?身份驗證令牌似乎更有可能位於客戶端的Cookie中。 – David

回答

3

用戶的信息被記錄在存儲在cookie中,並進入用戶的瀏覽器,並與每個請求的服務器之間。

重新啓動服務器無關與cookie,具體而言,cookie是仍然有效,它正確解密,因此用戶被視爲登錄。

如果你真的需要終止所有用戶會話,一個的方式正在改變應用程序的機器密鑰,即用於加密/解密auth cookie的加密密鑰。

https://msdn.microsoft.com/en-us/library/vstudio/w8h3skw9(v=vs.100).aspx

+0

當用戶會話存儲在內存中時,重新啓動服務器會將其擦除。因此,讓用戶註銷也是很好的,所以他們可以重新開始。 –

+0

@SørenMors:不是真的,想象你只是因爲在某個地方重新啓動服務器而退出谷歌或Facebook。內存中會話在生產環境中並不是一個很好的例子,爲了確保服務器意外重新啓動時不會丟失數據庫會話,首選數據庫會話。 –

+0

確實如此,不幸的是,我所維護的遺留應用程序使用內存中會話並且不能很好地處理服務器重新啓動。所以最好的解決方案是在服務器重新啓動時登錄死掉。 –