我遇到了一個ASP.NET應用程序的問題,這個問題讓我發瘋。表單身份驗證應該不會超時?
當用戶離開頁面處於非活動狀態一段時間時,會話超時並且由於會話變量無法解析而引發錯誤(我將錯誤地陷入這個問題,但這不是問題)。 我編寫了一個'defribulator',它會在會話超時一半到期後執行一個不可見的回發,並且這似乎工作正常 - 即使會話超時設置爲20分鐘,應用程序仍然保持30分鐘不會導致錯誤。 但是,今天早上其他開發者中有一個經歷了暫停 - 這怎麼可能?
在進一步的調查中,我認爲當表單身份驗證超時被超過時會出現問題 - 即使defribulator已經(顯然)讓會話保持活動狀態。我已經讀過,如果在指定的超時時間的一半已經恢復後發生回發,認證票證纔會被重新發布,並且這不會成爲問題,因爲defrib會在超時時間的後半部分發出請求 - 所以爲什麼它沒有重新發布?
我想我可以通過將身份驗證超時設置爲8小時左右來解決問題,但這是一個不好的解決方法。
任何人都可以對此有所瞭解嗎?
預先感謝
[編輯24/11/2008]回顧日誌文件已被證明有啓發和混亂。我可以看到defribulator在非活動狀態10分鐘後觸發,但Session_Id在整個過程中似乎始終保持一致,表單身份驗證票證ID發生變化 - 不確定是否應該這樣做。我正在制定一個測試計劃,並會在我完成測試計劃後發回。 感謝所有提供反饋的人。
[編輯24/11/2008]好吧,我很難過 - 現在似乎工作正常!當運行defrib(ID更改)並且會話正在維護時,正在重新生成身份驗證票證。這是一個服務器問題 - 無法分辨。我以前遇到過這個問題,從來沒有深究過它的底部,這是非常令人沮喪的 - 肯定不應該這麼難。我將不得不讓這個時間下降,因爲我必須跟上應用程序的其他方面。我只需要針對這個問題編寫代碼 - 這在客戶網站上可能不會發生。
再次感謝每個人的輸入 - 如果我取得任何進展,我會在這裏發佈。
我也看到了這個問題。讓我們希望有人有一個很好的解釋 – 2008-11-21 14:22:48
您是否手動生成身份驗證憑證 – 2008-11-21 19:14:11
我正在重複使用來自內部庫的代碼,因此我必須在星期一進行檢查。我會讓你知道(感謝你的輸入) – DilbertDave 2008-11-21 19:17:12