2015-12-30 48 views
0

在我的asp.net web應用程序中,當用戶登錄時,我將db中的isLogged標誌設置爲true。工作原理Asp.net Session_End

當會話過期(120分鐘後)時,我使用Session_End方法設置false isLogged標誌。

我在多的情況下測試這種方法:

  • 當用戶關閉,不點擊退出按鈕的瀏覽器,超時時間後Session_End中做他的工作。
  • 當用戶鎖定他的設備或他的設備進入待機狀態時,會發生同樣的情況。

我的問題是,有些用戶如果不點擊註銷按鈕,就會「保持登錄狀態」。 我對你很誠實,我不明白爲什麼session_end在客戶端設備沒有連接到網站時工作。我以爲服務器做了Session_end工作,但如果這是真的,爲什麼有些用戶不工作?

原因可能是瀏覽器或設備的類型(移動與否)?

回答

0

如果您爲會話啓用了滑動過期並且瀏覽器發出了一些永久性的AJAX請求,那麼只要讓瀏覽器窗口保持打開狀態就可以保持會話永久存在。至於會議結束事件是如何工作的:當Abandon方法已經 稱爲

的子程序的Session_OnEnd運行或當會話已過期。當Timeout屬性指定的 分鐘數通過而沒有爲會話發出 請求時,會話過期。

+0

我不設置滑動過期。默認是false?無論如何,爲什麼對於大多數用戶來說,當瀏覽器關閉或電腦或設備關閉時,會觸發session_end?!!? – Luke