1

我有一個ASP NET MVC 3應用程序,頁面中有一些參數正在設置(比如說region ='North')。Chrome和IE不發送ASP.NET_SessionID - 即會話變量會丟失嗎?

當這張郵件發回服務器時,我將此參數設置爲會話變量,並返回三個圖像,其src屬性設置爲三個不同的controller/getImageXy網址。

現在,這些控制器方法執行查詢(基於會話變量)並返回圖像。 它有點整潔,用戶得到一個快速回復,然後這些圖像被填充(異步)。

一切工作正常FF。最初的回覆有一個ASPNET_SessionID set(cookie)。

FF然後,獲取三張圖片,使用相同的cookie,並且一切都很好。但是,Chrome和IE並不這樣做。他們只是發送__RequestVerificationToken_Lw__。 當然,我的會話變量(「region」)會丟失。

感謝,

伊戈爾

+0

您使用的是IFrame嗎?我有一個近期的問題與此類似,但是當涉及IFrame時,它只在IE和Chrome中出現。 –

+0

不,它幾乎是一個帶有三個img標籤的車身標籤。 – igorludi

回答

1

要回答我的問題,可能救一個人幾個小時:

的問題是,我設置上的會話cookie的domain屬性。

我爲什麼那樣做? 我從書「Proffesional ASP NET MVC 3」(第163頁)複製它,打算設置HttpOnly標誌。報價:僅Http:

您可以通過添加一個簡單的 停止標誌在您的網站上所有的cookies腳本的訪問。你可以像這樣設置這個在web.config:

<httpCookies domain=」String」 httpOnlyCookies=」true」 requireSSL=」false」/>

我受到了懲罰複製粘貼不假思索。 因此,當我將其更改爲domain=""時,問題得到解決。

有趣的是,FF忽略(或濫用)這個屬性,但這是另一個話題。