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

它基本上是向用戶發出警告超時之前(例如,美國銀行網站)。一旦達到時間限制,將用戶重定向到註銷頁面。

僅供參考:如果您在沒有警告的情況下重定向或關閉頁面,用戶將會生氣。

相關問題