2013-03-27 91 views
1

我有一个asp.net网页,在会话过期之前有60秒的空闲时间窗口。有没有办法(通过asp或c#代码)关闭浏览器 - 或者最好是在Session_End事件中的标签 - 会话过期时关闭浏览器? asp.net

我见过很多关于SO的帖子,想做相反的事情(在浏览器关闭时结束会话),但不是我所需要的。

+1

我认为你应该放弃这个想法... – Johnny5 2013-03-27 13:48:58

+0

你可以使用JavaScript计时器。 – jrummell 2013-03-27 13:52:04

+1

大多数网上银行应用程序使用客户端JavaScript计时器并重定向到会话过期页面。 – adt 2013-03-27 13:55:59

回答

4

无法关闭浏览器,但你可以这样做重定向到一个“会话过期”页:

protected override void OnPreRender(EventArgs e) 
    { 
     base.OnPreRender(e); 
     this.PageHead.Controls.Add(new LiteralControl(
      string.Format("<meta http-equiv='refresh' content='{0};url={1}'>", 
      Session.Timeout * 60, "SessionExpired.aspx"))); 
    } 
+0

以及如果用户有多个打开的窗口,并且实际上会话从其他窗口保持活动状态? – Aristos 2013-03-27 13:55:21

+0

我已经尝试过,但我有运行SessionExpired的Page_Load事件的问题。无论我放在那里的代码将工作,如果直接启动,但如果页面重定向到,它将不会关闭。任何想法? – iajs 2013-03-27 13:57:44

+0

为什么要关闭浏览器?我同意,如果浏览器刚刚关闭,会导致用户生气。如果你真的想要的话,你可以在javascript中使用'window.close();'。 – David 2013-03-27 14:03:13

3

你可以看看下面这个例子 - Alert Session Time out in ASP.NET

它基本上是向用户发出警告超时之前(例如,美国银行网站)。一旦达到时间限制,将用户重定向到注销页面。

仅供参考:如果您在没有警告的情况下重定向或关闭页面,用户将会生气。

相关问题