【发布时间】:2011-11-12 21:34:55
【问题描述】:
我有一个 ASP.net 应用程序,它使用 cookie 来存储用户选择的语言。 一切正常,除非我在本地主机上。 将 localhost 替换为 127.0.0.1 使其再次工作......为什么?
我看到了对 file:// 的预期限制,但实际上我找不到任何对 localhost 的预期限制的参考。
我无法真正理解的是为什么 ASP.net 会话 (ASP.NET_SessionId) 和 ASP.net 表单身份验证 Cookie (.FSAUTHSSO) 已正确设置为 localhost 域,但我的 cookie 不是...为什么?!
我已经用谷歌搜索了很多,但没有任何效果:
- 设置 Chrome 命令行标志 --enable-file-cookies [不 工作]
- 将 cookie 设置为 HttpOnly [DOESN'T MATTER]
- 将过期时间更改为会话或日期...[不重要]
- 将 Cookie 路径更改为根目录 (/) 或其他任何内容 [不重要]
那么重要的是什么? :)
为什么可以设置 ASP.net cookie 而我的却不能?有什么区别?
最后要提一下,这也发生在 IE 上,但在 FF 上运行良好。
谢谢!
亚历克斯
【问题讨论】:
-
Options->Under the Hood->Privacy->Content settings中的 cookie 设置是什么?或者您是否有任何应用于 localhost 的异常? -
我没有碰过谷歌浏览器的设置。您要求的设置为:Cookies:允许设置本地数据(推荐)。我也没有设置任何例外...没有触及任何默认设置...
-
4 年后,今年是 2015 年,这仍然是 is a problem。
-
由于 localhost 服务器经常在不同的端口下运行,我应该提一下,您可以尝试使用没有明确端口的主机名设置 cookie 的 url。例如。而不是
cookie.url = '127.0.0.1:3001';,你可以试试cookie.url = '127.0.0.1';。这样做对我有用。请参阅此处了解更多信息:stackoverflow.com/questions/1612177/… -
试试 cookie.url='' ;让浏览器决定
标签: asp.net session google-chrome cookies