Asp.net 未设置Chrome localhost cookie
我有一个ASP.net应用程序,它使用cookie存储用户选择的语言。 除了我在本地主机上,一切都正常。 将localhost替换为127.0.0.1使其再次工作。。。为什么? 我看到了对file://的预期限制,但实际上找不到对localhost的预期限制的任何引用 我真正无法理解的是,为什么为本地主机域正确设置了ASP.net会话(ASP.net_SessionId)和ASP.net表单身份验证cookie(.fsauthso),但我的cookie没有。。。为什么 我已经在谷歌上搜索了很多,但都没有效果:Asp.net 未设置Chrome localhost cookie,asp.net,session,google-chrome,cookies,Asp.net,Session,Google Chrome,Cookies,我有一个ASP.net应用程序,它使用cookie存储用户选择的语言。 除了我在本地主机上,一切都正常。 将localhost替换为127.0.0.1使其再次工作。。。为什么? 我看到了对file://的预期限制,但实际上找不到对localhost的预期限制的任何引用 我真正无法理解的是,为什么为本地主机域正确设置了ASP.net会话(ASP.net_SessionId)和ASP.net表单身份验证cookie(.fsauthso),但我的cookie没有。。。为什么 我已经在谷歌上搜索了很多,
- 设置Chrome命令行标志--enable file cookies[不会 工作]
- 将cookie设置为HttpOnly[没关系]
- 正在将过期更改为会话或日期。。。[没关系]
- 将Cookie路径更改为Root(/)或其他任何内容[无所谓]
AlexCookie专为二级及以下级别设计。一级域将不起作用。相反,您应该使用该地址(如您所述),或者您可以编辑主机文件,将具有TLD的不同URL映射到地址127.0.0.1,例如:
yoursite.tld 127.0.0.1
只是进一步研究了这一点;找到了这个答案:我在Chrome上也遇到了同样的问题。我吃了饼干。安全=正确。为localhost解决了这个问题
(有完全相同的问题,FWIW:在FF中工作,而不是IE或Chrome)请尝试将
cookie.Domain=null
放在本地主机上,否则请使用域名。如果您显式地将域设置为“localhost”,您应该将其设置为false
以使其工作或使用将域设置为127.0.0.1
好消息。现在可以在Chrome启动Canary build时在localhost上设置Cookie:
我在chrome上遇到了一个问题,没有设置一个未来过期2周的cookie-这恰好是身份验证cookie(.AspNet.ApplicationCookie),因此我不断被重定向回登录页面。这个问题在我尝试的其他浏览器中没有出现 最后,我尝试了定制cookie,以确定chrome认为当前日期比实际日期早-例如,我放入了一个cookie,该cookie在今天(2017年4月2日)过期1年,chrome将该cookie设置为2017年1月1日过期!这就解释了为什么一个过期2周的曲奇已经被认为过期了,因为chrome将实际过期时间缩短了3个月,因此认为它已经过期了
Chrome reboot没有解决这个问题——我在这个阶段重新启动了电脑,这个“修复”了这个错误。另外,我应该注意到,这只发生在
localhost
——似乎其他所有站点都正常 我知道这可能很愚蠢,但碰巧我接管了一个asp.net mvc应用程序,却无法让它们在本地工作。最后,另一位开发人员指出web.config中最近添加的一个条目
<httpCookies httpOnlyCookies="true" requireSSL="true" />
本地将requireSSL设置为“false”。记住在整个环境中应用转换。
我希望这有帮助 在我的情况下,我使用iisexpress(localhost:######)运行asp.net core razor pages应用程序,我在Chrome上遇到了这个问题。我的修复方法是确保Properties\launchSettings.json中的iisSettings对于sslPort(44344)的编号不是0。当sslPort设置为0时,iisexpress将不会运行ssl。将其更改为44344,然后在iisexpress中使用ssl运行应用程序。或者,在VisualStudio中运行项目属性并在调试选项卡中启用SSL将对launchsettings.json进行相同的更改
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:29025/",
"sslPort": 44344
}
},
这让我好几个小时都发疯了!然后我意识到:
我通过去学校解决了我的问题chrome://flags/ 然后搜索cookies。将以下3个标志设置为禁用
- SameSite默认cookies
- 启用删除SameSite=None Cookie
- 没有SameSite的Cookie必须是安全的
在
选项->引擎盖下->隐私->内容设置中有哪些cookie设置?或者您是否有任何应用于localhost的例外情况?我没有涉及Google Chrome设置。您正在询问的设置为:Cookies:允许设置本地数据(推荐)。我也没有例外。。。没有触及任何默认设置…4年后,2015年仍然如此。由于本地主机服务器通常在不同的端口下运行,我应该提到,您可以尝试使用主机名而不使用显式端口设置cookie的url。例如,而不是cookie.url='127.0.0.1:3001'
,您可以尝试cookie.url='127.0.0.1'代码>。这样做对我有用。请参阅此处了解更多信息:尝试cookie.url='';让浏览器决定是的,这是我在各地找到的那种“解决方案”,但仍然没有解释为什么其他cookie可以工作,比如我提到的ASP.net cookies。ASP.net cookies是“会话”cookies。