2010-10-22 145 views
0

在此處,當執行Ajax請求時會話過期時,如何處理此問題已有很多問題。其中一個解決方法是在響應中放置一個標題,以便重定向到登錄頁面。ASP.NET會話在Ajax請求中過期

我的站點只做第一頁回發,然後它是所有的Ajax請求,這使得會話在確定的時間到期,但是有可能更新Ajax請求中的會話timout(在ASP處理程序中出席請求),以便會話過期但只有當我通過超時時間而根本不向服務器發出任何請求時?

+0

我不知道我是否正確地理解你的問題。你說過,「在AJAX請求中更新會話超時」。通常情況下,你不需要明確地做。即使請求是AJAX請求,頁面生命週期也不會改變。模塊/處理程序的工作方式與他們應該的相同。因此,您的會話相關信息將自動更新。 – 2010-10-22 09:02:27

+0

好吧,就像ovm說的那樣,Session應該由Ajax請求保持活躍狀態​​。我認爲,在做請求時,服務器請求將會發生,但頁面生命週期不會發生。謝謝 – Soulbe 2010-10-22 10:22:36

回答

1

您可以實現KeepAlive SessionObserver(JavaScript)並自行跟蹤會話超時。這樣你就可以捕獲空閒用戶的SessionTimeouts,並用消息和其他有用的東西重定向它們。

除此之外,發出Ajax請求時會話應保持活動狀態。當相應的WebService設置了EnableSession屬性時,它們可能只會保持活動狀態。你也可以嘗試。

例如,

[WebMethod(EnableSession = true)] 
public string WebServiceMethod(){ return "I'm session aware.";}