2012-01-15 62 views
1

我正在設計一個單頁面Web應用程序,其中的所有操作都發生在default.aspx上。登錄後,我將用戶的用戶標識存儲在Session中。我使用default.aspx中的SWFUpload將文件上傳到upload.aspx。 當upload.aspx收到一個文件時,它會檢查HttpContext.Current.Session是否爲用戶的ID。這用於工作,但由於最近HttpContext.Current.Session沒有關於我的會話的任何值。我必須改變一些事情,但我不知道是什麼。ASP.Net會話狀態在另一個網頁上不可用

更奇怪的是,它仍然適用於IE,但不適用於Firefox或Chrome。我還讀了一些關於Firefox錯誤地上傳IE會話cookie的內容(我是釋義)。

如何從上傳頁面(Firefox和Chrome)檢索會話數據?

+1

請驗證cookies是否啓用(firefox和chrome) – adatapost 2012-01-15 07:58:51

+0

Firefox和Chrome都啓用了Cookie。 – 2012-01-15 08:09:36

回答

3

這是非IE瀏覽器中的Flash和Cookie的已知問題。以下是討論解決方法的post over at swfupload.org,以及'just the code' over at snipplr。基本上,Flash不會在Firefox和Chrome等網站上發送cookie(或發送IE cookie),因此您的SessionID不會隨這些瀏覽器中的upload.aspx請求一起發送。儘管如此,IE瀏覽器仍然有效。

上面的解決方法是在post或url中發送SessionID和身份驗證票證,然後在Global.asax中截獲請求並在ASP.NET查找它們以便檢索身份驗證或會話之前重新創建正確的Cookie信息。

+0

謝謝你,花了我幾個小時找到這個答案。 – 2013-01-22 19:07:40