我搜索了但我没有找到这个问题的任何具体答案。在会话到期之前,我如何在服务器中获得价值?我的会话设置:
//超时,例如 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 分钟点。
如何获得到期前的剩余会话时间?