gab*_*ira 5 .net vb.net asp.net visual-studio-2010 session-timeout
我发现了一些类似的问题,但没有人给我我真正需要的东西.
这是事情,我已将此添加到我web.config处理用户会话到期:
<sessionState mode="InProc" timeout="1" />
Run Code Online (Sandbox Code Playgroud)
1分钟后,会引发Session_End事件Global.asax:
Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
Response.Redirect("Login.aspx")
End Sub
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为:
Response is not available in this context.
Run Code Online (Sandbox Code Playgroud)
(顺便说一句,这个问题得到了一个很好的说明,这是好的,它得到了回报).
我不想要任何幻想.我只想要一种简单的方法,在会话时间到期时将用户重定向到登录页面.就这样.
谢谢.
Session_End是一个服务器端事件,意味着它在Web服务器上触发,与客户端请求无关。这就是请求不可用的原因。
在这件事上你有两个选择:
在每个客户端请求上,检查是否设置了特定的会话变量。如果不是,则意味着先前的 Session 已过期,必须填充新的 Session。(我假设这就是您想要检查会话过期的原因)
在客户端上进行 javascript 调用,定期返回服务器以检查会话是否仍然有效。如果会话已过期,您可以将用户重定向到登录页面。
不同重定向方法的示例
location.href = "login.aspx";
// or you can use
location.assign("login.aspx");
//for redirecting without storing in history
location.replace("login.aspx")
Run Code Online (Sandbox Code Playgroud)
不要忘记添加?ReturnUrl=[current url]到登录重定向路径。
华泰
| 归档时间: |
|
| 查看次数: |
41963 次 |
| 最近记录: |