使用ASP.NET GenericHandlers时管理ASP.NET中的会话超时

时间:2010-01-05 12:51:19

标签: asp.net ajax session httphandler

例如,我有一个使用jQuery作为客户端框架的Web应用程序。现在大多数页面都是通过使用AJAX实现的,并通过使用通用处理程序(.ashx)与服务器通信。

现在我遇到了一个问题,我要求在用户会话到期时查看处理这些请求的最佳解决方案。

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

1 个答案:

答案 0 :(得分:2)

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

因此,除非用户禁用了javascript(在这种情况下,应用程序无论如何都不起作用),否则我们不可能在ASP.NET会话超时后进行jQuery调用。