Chrome localhost Cookie未设置

Ale*_*ode 49 asp.net cookies session google-chrome

我有一个ASP.net应用程序,它使用cookie来存储用户选择的语言.一切正常,除非我在localhost上.用127.0.0.1替换localhost使它再次工作......为什么?

我看到了对file://的预期限制,但我实际上找不到对localhost的预期限制的任何引用.

我无法理解的是为什么ASP.net会话(ASP.NET_SessionId)和ASP.net表单身份验证Cookie(.FSAUTHSSO)是为localhost域正确设置的,但我的cookie不是......为什么?!

我已经google了很多,没有任何作用:

  • 设置Chrome命令行标志--enable-file-cookies [不工作]
  • 将cookie设置为HttpOnly [无关紧要]
  • 将到期时间更改为会话或日期... [无关紧要]
  • 将Cookie路径更改为根(/)或其他任何内容[无关紧要]

那有什么关系呢?:)

为什么ASP.net cookie可以设置而我的不会?有什么不同?

最后一件事就是提到这也发生在IE上,但在FF上工作正常.

谢谢!

亚历克斯

krs*_*ynx 33

Cookie专为二级和二级设计.一级域名不起作用.相反,您应该使用地址http://127.0.0.1(如您所述),或者您可以编辑主机文件以将带有TLD的其他URL映射到地址127.0.0.1,例如:

yoursite.tld   127.0.0.1
Run Code Online (Sandbox Code Playgroud)

刚进行了研究; 发现这个答案:localhost上有明确域名的cookie

  • 是的,这是我发现的那种"解决方案",但仍然没有解释为什么其他cookie工作,比如我提到的ASP.net. (5认同)
  • ASP.NET 是“会话”cookie。Chrome 存储本地主机的“会话”cookie,但不存储“永久”cookie。要设置“会话”cookie,只需不要在 cookie 上设置过期日期(或显式将其设置为 DateTime.MinValue)。会话 cookie 实际上应该在每次浏览器关闭时被删除,但 Chrome/Firefox 具有诸如“从上次中断的地方继续”或“打开上次的选项卡”之类的功能,这实际上会导致浏览器无限期地挂起“会话”cookie而不是删除它们。安全漏洞,哈哈。 (2认同)

小智 19

请尝试cookie.Domain = null使用localhost并使用域名.


Ale*_*lex 18

这让我疯狂了好几个小时!然后我意识到:

  1. 我最近使用了HTTPS: //localhost 并设置了一个同名的 cookie。

  2. 这就是HTTP: //localhost 无法设置 cookie 的原因

  3. 所以我去了https,清除了 devtools 中“应用程序”选项卡中的 cookie,它再次开始使用http

  • 删除 Set-Cookie 标头上的“安全”标志后,我遇到了 google Chrome 的问题:您为我节省了很多时间,谢谢! (2认同)

小智 8

我通过转到 chrome://flags/ 然后搜索 cookie 解决了我的问题。将以下 3 个标志设置为禁用...

  • SameSite 默认 cookie
  • 启用删除 SameSite=None cookie
  • 没有 SameSite 的 Cookie 必须是安全的


Cle*_*man 5

我刚刚在 Chrome 中遇到了同样的问题。我有 cookie.Secure = true。为 localhost 摆脱它为我解决了这个问题。

(有完全相同的问题,FWIW:在 FF 中工作,而不是 IE 或 Chrome)


age*_*tmr 5

好消息.现在可以在启动Canary版本的Chrome上设置localhost上的cookie:https: //code.google.com/p/chromium/issues/detail?id = 551906


归档时间:

查看次数:

61178 次

最近记录:

6 年,3 月 前