2011-11-02 116 views
1

我正在研究asp.net MVC 3應用程序。我正面臨與會話到期有關的問題。當我登錄並且網站無效10-15分鐘時,我嘗試點擊任何鏈接,它說對象引用null錯誤。我希望當會話過期時,點擊任何鏈接時,我應該重定向到登錄頁面,並顯示會話過期的錯誤消息,或彈出相同的消息。如何實現它在asp.net MVC 3會話過期錯誤在asp.net MVC 3

問候, 阿西夫·哈米德

+0

你是如何處理身份驗證,FormsAuthentication或自定義的? – JonoW

+0

堆棧跟蹤和示例代碼會很有幫助。 – jrummell

回答

2

我猜你的代碼抓住從會話狀態的東西,然後使用它,而不檢查,如果它是空第一。

我會建議看看那個代碼,並添加空檢查。如果爲空,則根據需要重定向到登錄頁面。

+1

>>它說對象引用null錯誤。它是什麼?調試代碼,我懷疑n8wrl是正確的。同樣看看BNL的迴應,並正確設置會話/身份驗證超時。我會降低他們到1,2分鐘,看看你是否能更快地重現問題,然後理解問題,然後解決它。 – RickAndMSFT

1

在.net Web應用程序中通常會出現兩個超時。

第一個是會話超時。它在sessionState標記中設置。

<sessionState timeout="number of minutes" ...></sessionState> 

第二個是窗體cookie超時。它在認證標籤中設置。

<authentication mode="Forms"> 
     <forms timeout="number of minutes"/> 
</authentication> 

看起來您的會話在表單Cookie超時之前會超時。

最好讓會話持續比表單身份驗證Cookie多幾分鐘,這樣用戶可以在幾分鐘內重新登錄並仍然擁有會話。我遇到了問題,例如您所描述的問題,並將它們設置爲相同的值。