asp.net核心增加会话持续时间。的IdleTimeout不工作

问题描述:

我想要的会话持续几天,即使浏览器窗口关闭,所以我在Startup.cs使用此设置:asp.net核心增加会话持续时间。的IdleTimeout不工作

 services.AddSession(options => { 
      options.IdleTimeout = TimeSpan.FromHours(720); 
     }); 

但是,似乎没有任何效果。即使浏览器选项卡与网站保持打开状态,会话也会在一段时间后重置。我怎样才能解决这个问题 ?

+0

我有设置IdleTimeout 720分钟(12小时)完全相同的问题。我的会话在大约5个半小时后仍然过期。我在IIS上运行它,并确保iis中的空闲超时设置为12小时,并且它不会在错误的时间回收应用程序池。还是行不通。 – mikelt21

+0

会话Cookie设置为过期浏览会话因某种原因而结束时。 –

+0

在浏览器选项卡仍处于打开状态时会发生这种情况吗?当我关闭浏览器时,我不介意会话过期,但现在即使我打开网站也会过期。 – mikelt21

它发生是因为会话cookie在session中到期。 IdleTimeout设置应该服务器多久存储会话,它的“无形”到浏览器

在更多的细节:使用CookieBuilderMicrosoft.AspNetCore.SessionMicrosoft.AspNetCore.Http.Abstractions这台default(DateTimeOffset?)ExpiresCookieOptions的Cuz Expiration.HasValue回报false

如果你将覆盖记得public override TimeSpan? ExpirationSessionCookieBuilder

+0

你可以发布一些示例代码来做到这一点? –