2010-01-05 67 views
4

例如,我有一个使用jQuery作为客户端框架的Web应用程序。现在,大多数页面都可以通过使用AJAX并通过使用通用处理程序(.ashx)与服务器通信。在ASP.NET中使用ASP.NET GenericHandlers管理会话超时

现在我有一个问题,我问这是什么是当我的用户会话到期时处理这些请求的最佳解决方案。

例如,一个用户登录,离开浏览器15分钟,然后他按下一个按钮,这将创建一个请求处理程序,现在从服务器端,当我尝试读取一个会话变量,显然它会为空(会话已过期)。将用户重定向回登录页面的最佳方式是什么?

回答

2

我们用稍微不同的方法来解决这种情况。我们没有试图让所有的jQuery调用处理这种错误情况,而是使用javascript在客户端上实现了一个并行超时系统。在ASP.NET会话超时之前的一分钟,我们在浏览器上弹出一个对话框来警告用户“您一直处于非活动状态并且即将被注销,点击此处保持登录状态。”我们在对话中还包括了一点点倒计时。如果他们点击保持登录状态,我们会向服务器发送另一个jQuery调用以重置会话超时。

因此,除非用户禁用JavaScript(在这种情况下,应用程序无法正常工作),否则在ASP.NET会话超时后,我们无法进行jQuery调用。