2009-07-31 76 views
1

我有一個要求,堅持持久性AUTH cokkies很長一段時間(1個月)ASP.Net會話狀態長期遷延性驗證餅乾

我也是用相當多的會話變量。現在我無法將會話超時設置爲那麼長(它會終止服務器)。目前設定爲30分鐘。

假設用戶保持他們的瀏覽器窗口中打開的一天,權威性的cookie不會過期,但該會議將。而應用程序不會運行。

所以任何建議,解決方法或此問題的有用的鏈接?

+0

你有什麼需要會話存儲? – UpTheCreek 2009-07-31 07:39:08

回答

1

堅持認證Cookie是容易的,並且所述會話狀態的獨立的:

<system.web> 
    <authentication mode="Forms"> 
    <forms timeout="43200"/> 
    </authentication> 
</system.web> 

超時被設置在分鐘,這樣:

30(天)* 24(小時)* 60(分鐘)= 43200分鐘

會話的東西有點棘手,但可行。

你真的需要看看你實際上在會話中存儲,以及你是否真的需要所有的這一切的時候。作爲會話變量保存在服務器上,讓他們你將不得不(網站,或自上次應用重啓29小時,以及其他特殊情況下的最後一個活動後,默認爲20分鐘),在應用程序重新啓動持續查看使用非InProc會話的內容 - 使用會話服務器或SqlSessions。

但是,它可能是你可以做一些配置文件一樣,所以最少使用的變量存儲在配置文件存儲,只檢索他們當你真的需要。

否則,當用戶返回時,您會想要重新構建會話狀態的方式 - 因此將某種已知令牌存儲在持久cookie中,以便您可以繼續停止 - 但是要做到這一點最簡單的方法是採取從認證系統自己的用戶名,細節存儲在數據庫中...