2012-07-27 131 views
8

我使用asp.net表單版本4並使用內置的FormsAuthentication。 我選擇了不堅持用戶。谷歌瀏覽器關閉瀏覽器後保持會話變量

 FormsAuthentication.RedirectFromLoginPage(userIAmUsing, false); 

當我在IE和Firefox關閉瀏覽器。我的會話變量被銷燬,當我返回頁面時,我被要求重新登錄。但是,在我的Chrome設置中,我已選中「繼續離開我的位置」設置。當我在Chrome中關閉瀏覽器時,它將堅持cookie來抵制我(開發人員)的願望。事實上,即使在我退出我的機器之後,會話仍然存在。 這就是情況,有沒有人知道任何事情,我可以做一個開發人員來覆蓋這種行爲,並且不允許會話在瀏覽器關閉後繼續存在?換句話說,即使用戶檢查了該設置,我是否可以讓Chrome的行爲與其他瀏覽器完全相同?

+1

今天我想到了這個。我發現關於官方[Chrome bug report](https://code.google.com/p/chromium/issues/detail?id=128513)的討論非常有趣。你可以看到[Google的官方回覆](https://code.google.com/p/chromium/issues/detail?id=128513#c28)。顯然,他們不會解決這個問題。作爲開發者,我認爲我們的手是捆綁的。 – 2014-01-17 16:47:55

回答

0

沒有這樣的瀏覽器特定代碼。你可以做的是跟蹤IP和瀏覽器,然後在請求細節發生變化時註銷用戶。

推薦?

+0

謝謝,這是我沒有想到的,但它不能解決我的噩夢場景。一名學生在學校用私人信息填寫申請表,另一名學生在幾分鐘後回來,並能夠訪問他們的信息,因爲學生不記得註銷,而是關閉了瀏覽器。如果谷歌像其他人一樣玩,這不是問題,但因爲它不對我負責。我不想改變每個人爲一個球員,因爲這讓我感覺像IE6一遍。 – 2012-07-27 17:46:14

+0

完美的理由。但是由於一些黑客,你提高了安全性,你也會同意它會對此產生一些影響。試着將它放入模塊並拒絕請求。如果它阻礙了應用程序的性能,那麼可以使用負載平衡器。讓我知道你的想法 – Ankit 2012-07-27 17:52:24

2

Cookie和會話都有超時。您可以將超時設置得很短,以免Chrome在時間到期後嘗試重用它們。

+0

謝謝。這是我可以做的事情,但是這打開了另一個蠕蟲的可能性,因爲我現在有不適用的人不得不重新登錄,因爲我不得不將時間更改爲很短的時間。我正在尋找一種方法來設置一些東西,比如robots.txt文件,它告訴Chrome不要堅持這些cookie,以便每個人都按照相同的規則來玩遊戲,而不是真正改變每個人使用Google的規則。 – 2012-07-27 17:40:18

+0

.NET會話有滑動過期,意味着只要用戶處於活動狀態,過期將繼續推回。當它們處於非活動狀態時,它不會被推回,因此在超時後過期。 – Jeff 2012-07-27 17:41:50

+0

另請參閱:http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.slidingexpiration.aspx – Jeff 2012-07-27 17:44:39

0

你能做的唯一一件事就是嘗試手動刪除在卸載處理cookie的;

$(window).unload(function() { /* delete session cookie */ });