我想要的會話持續幾天,即使瀏覽器窗口關閉,所以我在Startup.cs使用此設置:asp.net核心增加會話持續時間。的IdleTimeout不工作
services.AddSession(options => {
options.IdleTimeout = TimeSpan.FromHours(720);
});
但是,似乎沒有任何效果。即使瀏覽器選項卡與網站保持打開狀態,會話也會在一段時間後重置。我怎樣才能解決這個問題 ?
我想要的會話持續幾天,即使瀏覽器窗口關閉,所以我在Startup.cs使用此設置:asp.net核心增加會話持續時間。的IdleTimeout不工作
services.AddSession(options => {
options.IdleTimeout = TimeSpan.FromHours(720);
});
但是,似乎沒有任何效果。即使瀏覽器選項卡與網站保持打開狀態,會話也會在一段時間後重置。我怎樣才能解決這個問題 ?
它發生是因爲會話cookie在session
中到期。 IdleTimeout
設置應該服務器多久存儲會話,它的「無形」到瀏覽器
在更多的細節:使用CookieBuilder
Microsoft.AspNetCore.Session
從Microsoft.AspNetCore.Http.Abstractions
這臺default(DateTimeOffset?)
在Expires
在CookieOptions
的Cuz Expiration.HasValue
回報false
如果你將覆蓋記得public override TimeSpan? Expiration
在SessionCookieBuilder
你可以發佈一些示例代碼來做到這一點? –
我有設置IdleTimeout 720分鐘(12小時)完全相同的問題。我的會話在大約5個半小時後仍然過期。我在IIS上運行它,並確保iis中的空閒超時設置爲12小時,並且它不會在錯誤的時間回收應用程序池。還是行不通。 – mikelt21
會話Cookie設置爲過期瀏覽會話因某種原因而結束時。 –
在瀏覽器選項卡仍處於打開狀態時會發生這種情況嗎?當我關閉瀏覽器時,我不介意會話過期,但現在即使我打開網站也會過期。 – mikelt21