我開發了一個具有多個.aspx頁面的項目。幾乎所有的網頁都使用了很多會話。如果任何會話過期,應用程序將拋出錯誤。我不想在所有創建的會話的所有頁面上檢查會話過期。任何人都可以建議我如何解決這個問題。如何在多個頁面上創建的任何會話的會話時間重定向到登錄頁面?
在此先感謝
我開發了一個具有多個.aspx頁面的項目。幾乎所有的網頁都使用了很多會話。如果任何會話過期,應用程序將拋出錯誤。我不想在所有創建的會話的所有頁面上檢查會話過期。任何人都可以建議我如何解決這個問題。如何在多個頁面上創建的任何會話的會話時間重定向到登錄頁面?
在此先感謝
從未使用過,但我認爲可以用於此目的Global.asax
文件的Session_End(object sender, EventArgs e)
方法。
另一種解決方案可以檢查項目的頁面Site.Master
的會話狀態。您的其他網頁必須將此頁面用作其主頁面。
如果您未檢查會話變量值是否實際存在,那可能會在各種情況下中斷您的應用程序。如果您的應用程序被回收(或web.config更新),則可以在使用InProc(內存)時終止會話變量。除了在使用會話之前檢查變量是否實際存在以外,沒有更好的方法來處理所有場景。這是最佳做法。如果你不想要意外的崩潰,那麼值得添加這個條件。
你可以使用session_end事件來重新填充所有的變量,但那不是打破證明。
不用於這個,但事件會在會話結束時觸發,所以當你訪問一個不存在的會話變量時,你可以優雅地處理它而不是ysod。 – Stuart