我搜索了一下,但并没有找到这个问题的具体答案。在服务器端如何获取剩余的会话过期时间呢?我的会话设置如下:
// 例如10分钟超时。
// 例如10分钟超时。
<authentication mode="Forms"> <forms name=".ASPXAUTH_External" loginUrl="Authentication/Unauthorized.aspx" protection="All" timeout="10" path="/" slidingExpiration="true" defaultUrl="~/Pages/home.aspx" cookieless="UseDeviceProfile" enableCrossAppRedirects="false"/>
</authentication>
<sessionState mode="InProc" timeout="10">
</sessionState>
我获得初始值(它将获得10*60 = 600秒):
SessionStateSection sessionSection = (SessionStateSection)WebConfigurationManager.GetSection("system.web/sessionState");
countdown.Text = sessionSection.Timeout.TotalSeconds.ToString();
当会话时间少于一半并且用户执行某些操作时,我得到初始值600,但它与剩余的会话时间不相等,因为"slidingExpiration" 增加了一些时间(我不知道多少),但是没有将会话剩余时间重置为起始10分钟点。
如何获取会话到期前的剩余时间?