例如,我有一个使用jQuery作为客户端框架的Web应用程序.现在,大多数页面都可以通过使用
AJAX来实现,并通过使用Generic Handlers(.ashx)与服务器进行通信.
现在我遇到一个问题,我问这个问题,看看当我的用户会话到期时处理这些请求的最佳解决方案是什么.
例如,一个用户登录,离开他的浏览器15分钟,然后他按下一个按钮,这将创建一个请求给处理程序,现在从服务器端,当我尝试读取会话变量显然它将是空的(会话过期).将用户重定向回登录页面的最佳方法是什么.
最佳答案 我们通过略微不同的方法来解决这种情况.我们使用
javascript在客户端上实现了并行超时系统,而不是试图让所有jQuery调用处理这种错误情况.在ASP.NET会话超时前一分钟,我们在浏览器上弹出一个对话框,警告用户“你一直处于非活动状态,即将被注销.点击此处保持登录状态.”我们还在对话框中包含了一些倒计时.如果他们单击以保持登录状态,我们会向服务器发送另一个jQuery调用以重置会话超时.
因此,除非用户禁用了javascript(在这种情况下,应用程序无论如何都不起作用),我们不可能在ASP.NET会话超时后进行jQuery调用.