0

每当 ASP.Net 会话超时时,我们需要将用户重定向到会话超时页面。我们通过 AJAX 调用获取大部分内容,用户永远不会离开默认页面。
有没有办法在客户端(在 Javascript 中)检测会话超时而不对服务器端代码进行任何更改。我们可以检查 HTTP 状态代码吗?

亲切的问候,

4

3 回答 3

1

您可以在服务器上设置一个等于会话超时参数的计时器。如果用户处于活动状态,会话将永远不会超时,如果他关闭浏览器,它将自动结束。所以你唯一的情况是页面打开时,但用户没有做任何事情。在这种情况下,您可以让会话保持活动状态,只要您继续发送 ajax 请求(您可以在后台执行此操作),或者设置一个指示不活动时间的计时器。

于 2009-10-27T06:15:50.440 回答
0

默认情况下,当会话超时时,asp.net 不会返回特殊状态代码。如果会话超时,您可以在服务器端检测到这一点并设置特定的状态代码。您还可以设置自定义标头或在会话超时时以特定方式编写内容以通知客户端的代码。

于 2009-10-27T04:52:18.580 回答
0

我有一些类似的场景,下面的代码解决了我的问题。//在母版页中://180 是会话超时时间……。函数 SessionTimeOuts() { self.setTimeout("RedirectToLogin();", '180'); }

    function RedirectToLogin() {
        window.location.href = '../login.aspx';
    }

</script>

在母版页正文标记中使用 onload="SessionTimeOuts()"

于 2010-07-16T10:06:42.860 回答