我在global.asax中尝试了以下代码,但不起作用,并导致Application_Error(“响应在此上下文中不可用。”)。
Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
' Fires when the session ends
Response.Redirect("~/HomePage.aspx")
End Sub
Session_End不是由浏览器发起的(因为从理论上讲,来自浏览器的任何响应都应该将会话延长20分钟),因此响应对象的概念没有意义。
我能看到的唯一选择是使用某种客户端脚本(javascript),该脚本使用window.settimeout
函数...类似于(未经测试的)...
<body onload="window.setTimeout(function(){document.location.href='/Home.aspx';},72000000);">
更新
我使用的是和和。一切都很好,但是当会话超时的时候,我会得到以下错误”,因为我已经在布局的main.gsp文件中调用了session变量。现在,我希望在每次会话超时后重定向到登录页面,并且不显示错误页面。要在会话超时后重定向,我已经在文件中这样做了 但是有这么多页,所以很难写每一页。还有其他的方法做这件事吗?请帮忙。
问题内容: 我正在使用ASP.NET MVC。我想在会话过期时重定向到登录页面。我该如何实现?如果我正在对控制器中的方法进行AJAX调用,那么如果在这种情况下我的会话期满,我也想重定向到登录页面。 问题答案: 您可以通过3种方式做到这一点: 为您的操作创建一个过滤器,并将其应用于OnActionExecuting中的代码编写(在执行操作之前),http://www.asp.net/mvc/tuto
我想通过我的代码将用户重定向到会话超时页。我可以在过滤器中写什么逻辑,检查会话是否超时,并将用户重定向到那个定制页面(比如CustomSessionTimeout.jsp)。此页面不必经过任何筛选。 这是第一个过滤器中的一个方法的签名 public void doFilter(ServletRequest ServletRequest,ServletResponse ServletResponse
在 HTTP 协议中,当客户端不再处于活动状态时没有显示的终止信号。这意味着当客户端不再处于活跃状态时可以使用的唯一机制是超时时间。 Servlet 容器定义了默认的会话超时时间,且可以通过 HttpSession 接口的 getMaxInactiveInterval 方法获取。开发人员可以使用HttpSession 接口的 setMaxInactiveInterval 方法改变超时时间。这些方法
我正在尝试清除会话,并在会话超时时将用户注销,并重定向到登录页面。登录页是帐户控制器中的登录方法返回的部分视图。当会话超时时,登录视图会在当前页面中呈现用户在会话超时之前所在的页面以及URL。 Web.config
问题内容: 我在用户登录时创建会话,如下所示: 如何在X分钟的会话上指定超时,然后在达到X分钟后让它执行功能或页面重定向? 编辑:我忘了提及由于不活动,我需要会话超时。 问题答案: 首先,存储用户最后一次发出请求的时间 在后续请求中,检查他们多久之前提出了请求(在此示例中为10分钟)