【发布时间】:2013-09-11 09:41:15
【问题描述】:
我正在开发一个具有 cookie 登录的应用程序。没什么特别的。
但是我遇到了一个奇怪的行为。我正在测试一些应用程序内部,为此我打开了四种不同的浏览器。
清除浏览器历史记录、cookie 和所有内容后 - 打开第一个浏览器时,我需要登录。很好。
下一个浏览器直接进入内容 - 他们使用与我打开第一个浏览器时相同的用户名/密码组合登录。
我确信所有浏览器都保留了自己的 cookie。
当firefox、opera和chrome用同一个用户打开时更惊讶。
有人见过这个吗?
本次会议使用的浏览器是最新的 Firefox、最新的 Chrome、最新的 Opera,不要忘记最新的 IE。
全部在 Win 8.1preview 上执行。
现在 Opera 的外观和感觉非常像 Chrome(相同的代码库?),但其他浏览器绝对不能让我使用其他浏览器 cookie 登录。
更不用说cookie是加密的,只有应用程序知道如何解密它!
我很困惑——非常困惑。它不应该发生!
欢迎提出任何想法。
这篇文章也将发布在其他论坛上。
在此先感谢各位聪明人可以就此事发表意见。
编辑:
刚刚检查过我是否搞砸了什么。这些是采取的步骤:
- 打开了四个浏览器
- 清除 cookie 和所有四种浏览器中的所有内容
- 在所有四种浏览器中都打开了应用的登录页面
- 使用 IE 登录 - 勾选保存 cookie。
- 在其他浏览器中刷新登录页面
结果: 刷新这 3 个浏览器后发现它们读取了 IE 针对该特定主机名的 cookie。
编辑
还张贴@http://forums.asp.net/p/1934186/5503683.aspx
编辑
我想我可能找到了一个指针,但不确定要查找什么。 在带有 android 2.1.1 的旧 asus-garmin 手机上进行测试。 我用手机登录到应用程序,它看起来不错。 然后我尝试了新的诺基亚 Lumia 920,并会在 windows phone 8 上进行一些应用测试。 Lumia 是全新的,我打开的第一个网站是我正在开发的应用程序。
想象一下,当应用程序以我在 Android 手机上登录的用户打开时,我会感到惊讶。
唯一常见的是无线接入点。接入点是 Cisco rv-220w,据我所知,它没有任何代理功能。
UEX 技术
【问题讨论】:
-
没有浏览器与 Internet Explorer 共享 HTTP cookie。 FelixD 是正确的,您看到的是 Flash cookie(可以跨浏览器共享),或者上游代理正在缓存授权后页面。
-
该应用程序在 Windows Server 2012 上内部运行,它不使用 Flash,因此应该没有 Flash cookie。编辑:我检查了控制面板中的闪存设置,但我的开发站点未列出。我会感到惊讶,因为没有使用闪光灯。不过,我可以在需要时重现该行为。
-
#EricLaw - 应用程序正在开发中并在内部网络上运行 - 不涉及代理。
-
您应该使用 Fiddler 获取流量日志。也许您在服务器上错误地启用了输出缓存。
-
@EricLaw - 好主意。检查输出缓存,默认情况下启用。没有自定义规则,因此使用默认设置。我尝试禁用缓存并重新启动 IIS。结果令人失望,因为这种行为仍在继续。当然,在再次打开页面之前,所有 cookie 等都会从浏览器中清除。
标签: internet-explorer google-chrome firefox cookies opera