2011-09-08 162 views
40

我有一個使用cookie存儲用戶所選語言的ASP.net應用程序。 除了當我在本地主機上時,一切正常。 替換localhost 127.0.0.1使它再次工作...爲什麼?Chrome localhost cookie未設置

我看到了文件的有意限制://但我實際上找不到任何對本地主機限制的引用。

我真的不明白爲什麼ASP.net會話(ASP.NET_SessionId)和ASP.net窗體身份驗證Cookie(.FSAUTHSSO)正確設置爲本地域名,但我的Cookie不是...爲什麼?!

我已經用Google搜索了很多,沒有什麼作品:

  • 在Chrome命令行標誌--enable-文件餅乾[不 WORK]
  • 設置Cookie設置爲僅Http [不事項]
  • 更改過期到會話或一個日期...... [沒關係]
  • 更改cookie路徑爲根(/)或到別的[沒關係]

那麼重要的是什麼? :)

爲什麼可以設置ASP.net cookie而我的不是?有什麼不同?

最後要說的是,這也發生在IE上,但在FF上正常工作。

謝謝!

亞歷克斯

+0

什麼是「選項 - >胡德 - >隱私 - >內容設置」中的cookie設置?或者你有沒有任何異常應用到本地主機? –

+0

我還沒有碰過Google Chrome設置。您要求的那個設置爲:Cookie:允許設置本地數據(推薦)。 我也沒有例外設置...沒有觸及任何默認設置... – AlexCode

+3

4年後,今年是2015年,這仍然[是一個問題](http://stackoverflow.com/questions/ 28583729 /鉻犯規 - 組 - cookie的從響應)。 – Gaui

回答

24

餅乾是專爲二級和低級。一級域名將無法使用。相反,你應該使用地址http://127.0.0.1(如你所提到的),或者你可以編輯您的主機文件映射到不同的URL與TLD的地址爲127.0.0.1,如:

yoursite.tld 127.0.0.1 

就研究這進一步;找到了這個答案:Cookies on localhost with explicit domain

+5

是的,這是我發現的一種「解決方案」,但仍然沒有解釋爲什麼其他cookie會起作用,就像我提到的ASP.net那樣。 – AlexCode

+0

ASP.NET的是「會話」cookie。 Chrome爲localhost存儲「會話」cookie,但不存儲「永久」cookie。要設置「會話」cookie,只需不要在cookie上設置過期日期(或明確將其設置爲DateTime.MinValue)。會話cookie實際上應該在每次瀏覽器關閉時被刪除,但Chrome/Firefox具有「繼續我離開的位置」或「從上次打開我的標籤」等功能,實際上會導致瀏覽器無限期地掛在「會話」Cookie上而不是刪除它們。安全孔,哈哈。 – Triynko

1

我剛在Chrome中遇到同樣的問題。我有cookie.Secure = true。爲localhost擺脫這個問題解決了我的問題。

(有相同的問題,FWIW:在FF,不是IE或Chrome工作)

19

,請儘量把cookie.Domain = null在本地主機上,並以其他方式使用該域名。

+0

這讓我在localhost上運行的技巧。我正在努力與其他參數,但你的小費的作品。謝謝! – elvin

0

有一個issue on Chromium open since 2011,如果您明確將域名設置爲'localhost',則應將其設置爲false以使其正常工作或使用將域名設置爲127.0.0.1

1

我曾在那裏與2周以後的過期餅乾沒有被設置在瀏覽器的問題 - 這正好是權威性的cookie( .AspNet.ApplicationCookie),所以我不斷被重定向回登錄頁面。這個問題在我嘗試過的其他瀏覽器中沒有發生。

我結束了自定義Cookie試驗,以確定鉻認爲當前日期是比實際情況 - 因此,例如,我將在今天(2月 - 2017年)1年內到期一塊餅乾實際上,Chrome設置此Cookie將於2017年1月1日到期!這就解釋了爲什麼一個2周到期的曲奇已經被認爲已經過期了,因爲鉻是在實際到期的3個月期間掉下來的,因此認爲它已經過期。

Chrome重新啓動並沒有解決這個問題 - 我在這個階段重新啓動了電腦,這個「固定」錯誤。另外我應該注意到這隻發生在localhost - 看起來其他所有網站都沒問題。

+0

謝謝我調試了2h試圖縮小cookie大小和其他一些東西,但重新啓動計算機解決了問題! – Peter

1

我知道這可能很愚蠢,但它發生在我身上,我接管了一個asp.net mvc應用程序,我無法讓它們在本地工作。最後,另一位開發人員指出最近添加的web.config中的條目。

<httpCookies httpOnlyCookies="true" requireSSL="true" /> 

在本地設置requireSSL爲「false」。請記住通過環境應用轉換。 我希望這可以幫助。

+0

完全一樣的問題,但我解決後發現這個:) – endo64