【发布时间】:2017-10-28 09:47:06
【问题描述】:
我有一个使用会话的 ASP.NET Web 表单结帐应用程序。会话可能会在 5 分钟后过期。如果用户点击aspx 页面上的提交按钮,
- 如何知道会话已过期?
- 是否有可用的应用程序级挂钩,我可以将用户重定向到一个页面,说明您的会话已超时并重新开始结帐过程。
【问题讨论】:
标签: asp.net webforms session-cookies
我有一个使用会话的 ASP.NET Web 表单结帐应用程序。会话可能会在 5 分钟后过期。如果用户点击aspx 页面上的提交按钮,
【问题讨论】:
标签: asp.net webforms session-cookies
因为会话存在于服务器上,所以您在客户端真正能做的就是设置一个计时器,并尽量使其与服务器保持同步。这样,当服务器上的计时器(并且希望)会话到期时,您可以让代码客户端重定向到您的超时页面。但是,让您的客户端计时器保持同步可能是一个挑战,因为您必须考虑 ajax 操作/部分回发/等会重置服务器会话,因此他们也必须重置您的客户端计时器。
请注意,没有 100% 完美的方法可以做到这一点。由于您无法控制的事情,例如网络延迟、用户的 PC 等 - 您的客户端计时器可能/可能会与服务器会话相差一两秒的可能性总是存在的。
实际上,如果您想看一下,几年前我为此目的写了control。它使实现这一点几乎即插即用。
【讨论】: