2011-06-23 75 views
0

我在應用程序中爲Oracle實現了自定義會話狀態提供程序。它似乎運行順利(沒有錯誤!),但我在重定向到另一頁時檢索一些會話變量時遇到問題。但它不會一直髮生。.NET自定義會話狀態提供程序:不會持續跨頁...有時

當Session開始時,我將一個User對象加載到Session中。它保持在那裏,因爲當用戶到達起始頁面(並且被認證)時,該應用仍然識別他。從Session中檢索User對象沒有任何問題。

但是,如果我傳遞一個值到會話我的應用程序內頁的一個,然後重定向到另一個頁面,以利用該Session變量,新的頁面檢索空自同名Session變量。使用Visual Studio Watch窗口,我實際上可以看到它的值從「100」(或其他)變爲null。我不明白。

會話提供者似乎工作正常,因爲正如我所說,我能夠堅持一些變量。是否有人知道Session會失去一個價值的原因是什麼?謝謝。

回答

0

如果您在頁面中執行response.redirect,則會導致線程在將會話寫回數據庫之前中止。

+0

我不確定是否發生了Response.Redirect。一個Telerik的樹視圖節點上單擊時,其navigateurl設置爲新的一頁,我可以重現行爲相當一致。點擊treeview可能會做一個response.redirect? – TheDudeDude

+0

是如果導航到一個新的頁面,那麼它當然可以做一個重定向。 – JNappi