2011-01-14 116 views
47

在302重定向期間發送cookie是否存在任何問題?例如,如果我創建了一個返回到URL的cookie並在相同的響應中重定向用戶,那麼任何(現代)瀏覽器都會忽略該cookie?在302重定向期間發送瀏覽器cookie

+0

讀了一下,我想會話變量會比cookies好,因爲它們是服務器端的,不依賴於客戶端的可預測性。 – ADTC 2016-11-27 10:41:22

回答

20

大多數瀏覽器正在接受302重定向中的Cookie。我很確定,但我做了一些搜索。並非所有現代瀏覽器。 Internet archive Link from a now removed/dead/ microsoft connect Q/A on Silverlight Client HTTP Stack ignores Set-Cookie on 302 Redirect Responses (2010)

我認爲我們現在有針對IE6的替代品,它的Windows Mobile瀏覽器...

+1

您指定的論壇頁面無法通過URL訪問。你的意思是IE6和Windows Mobile瀏覽器不是? – hiroshi 2013-02-12 02:15:00

+1

鏈接已移動。我已經設定了一個有着相同內容的新鏈接。我的意思是IE特定版本的移動添加自己的一套錯誤 – regilero 2013-02-13 13:08:45

10

Here是此問題的Chromium錯誤(對狀態302的HTTP響應忽略​​Set-cookie)。

+0

狀態:WontFix - 永久性錯誤 – Slawa 2017-10-03 22:30:57

11

一個通知(以節省開發者的工作):

IE和邊緣都忽略設置Cookie中的重定向響應時cookie的訪問本地主機

解決方案:

使用127.0.0.1而不是本地主機

0

在我的情況下,我設置了CookieOptions.Secure = true,但是在http://localhost上測試了它,並且瀏覽器根據設置隱藏了cookie。

爲避免此類問題,您可以使Cookie安全選項與協議Request.IsHttps匹配,

new CookieOptions() 
       { 
        Path = "/", 
        HttpOnly = true, 
        Secure = Request.IsHttps, 
        Expires = expires 
       }