在我们的Java Web应用程序中,我们使用HTTP sessiom进行登录。我认为这是非常标准的东西。 最近我们收到了一位客户的报告,该报告称登录通常会导致用户登录失败(有时会丢失任何工作)。
根据客户的说法,这在使用OS X - Firefox 3
时永远不会发生当客户一次打开多个标签时,会出现问题。
我必须从客户那里获得更多信息,但我首先想到的可能是http sesion超时(我想30分钟)。
我的第二个想法是,因为IE 7共享选项卡之间的会话,客户可以:
1.在默认选项卡中登录到管理控制台 2.在第二个标签中“覆盖”第一个会话,在网络前端登录。
正如我上面所说,我没有更多来自客户的信息来重现这一点,但我发现整个事情有点奇怪,因为我们以前从未听说过它。
这里有没有人有类似的经历? 这听起来像是一个客户问题:)但我只是好奇,
提前致谢,
小宠物
答案 0 :(得分:0)
是的,我们不时会听到这种类型的问题,而且往往是由您提出的情况引起的。
您可以让客户尝试获取跟踪信息(请参阅www.fiddlercap.com),以便更好地解决生产中此类问题。
答案 1 :(得分:0)
因为IE 7共享选项卡之间的会话
我知道的所有浏览器都在其所有标签页和窗口中共享Cookie(以及会话)。 IE有一个恼人的功能,按Ctrl-N为新窗口实际打开当前URL的附加窗口(而大多数其他浏览器只打开一个空白窗口,或显示主页)。我想这也适用于按Ctrl-T打开一个新标签?
因此,IE中的事情可能会更加混乱,但对于其他浏览器应该没有什么不同。并且单独打开一个额外的窗口不应该使任何cookie无效。 (当窗口关闭时,您的Web应用程序可能会使用一些JavaScript来使会话无效,但我想您已经知道了。)
在所有知名浏览器中(肯定包括OS X上的Firefox),使用不同的登录凭据打开多个窗口可能会混淆您的Web应用程序,因为大多数Web应用程序不是为支持使用相同cookie的多个登录而构建的(因此:对于同一个域名)。每次登录使用不同的浏览器解决了这个问题。此外,设置一些admin.example.org域(指的是完全相同的服务器IP地址)可以帮助分离正常登录和管理员登录的cookie,而无需更改服务器端代码。
早期版本的Internet Explorer似乎存在一些问题,当客户端上的时区与该客户端的实际时区不匹配时,Cookie过期。当选择错误的时区时,人们实际上将时钟设置为错误的时间以弥补差异。这会混淆一些 cookie机制(可能只有当 cookie本身的值也会保留一些时间戳)时,尤其是当客户端上的夏令时开始或停止时与服务器上的日期不同。