gpt4 book ai didi

cookies - IE8在弹出窗口中丢失 session Cookie

转载 作者:行者123 更新时间:2023-12-02 02:57:55 25 4
gpt4 key购买 nike

我们有一个使用Forms Auth的ASP.NET应用程序。用户登录时,将生成 session ID cookie和Forms Auth票证(存储为cookie)。这些是 session cookie,而不是永久cookie。故意且理想的是,当浏览器关闭时,用户将被有效注销。

用户登录后,将使用window.open('location here');弹出一个新窗口。打开的页面实际上是用户在其余 session 中一直使用的工作空间。在此页面上,还将使用其他弹出窗口。

最近,我们有很多客户(都使用最新版本的IE8)抱怨说,当他们登录时,最初的弹出窗口将他们带回到登录屏幕,而不是首页。或者,用户有时可以登录并转到主页(该页面再次在新的弹出窗口中),在所有其他弹出窗口创建之后,一切似乎都还不错,它开始将其重定向到登录屏幕。再次。

在尝试解决此问题时,我使用了不错的老Fiddler。当问题开始显现时,我注意到浏览器没有发送ASP.NET session ID session cookie或Forms Auth票证 session cookie,即使对POST中的日志响应明显按下了这些cookie。

更奇怪的是,如果我按CTRL + N键从弹出的窗口中打开一个缺少 session cookie的新窗口,然后手动键入主页的URL,这些cookie就会神奇地再次出现。但是,后续的window.open();调用将继续中断,不会发送 session cookie,也不会将用户带到登录屏幕。

重要的是要注意,有时,由于看似没有充分的理由,这些相同的用户可能突然登录并正常工作一段时间,然后又恢复正常。

现在,我确保没有浏览器加载项,插件,工具栏等正在运行。我已将我们的站点添加为受信任的站点,并将安全设置降低为“低”,我已将Cookie隐私策略修改为“全部接受”,甚至禁用了自动策略设置,手动强制其接受所有内容并包括 session cookie。似乎没有任何影响。

还要注意,Web应用程序驻留在单个服务器上。没有负载平衡,网络花园,服务器场,群集等。服务器确实位于ISA服务器之后,但是除此之外,它非常简单。

我已经搜寻了好几天,却没有发现任何可行的方法。哎呀,有时候我什至不能可靠地复制它。我发现了一些提到同样问题的人的信息,但是他们似乎是在引用一个据说已在Beta或RC版本中修复的问题(例如:IE8 loses cookies when opening a new window after a redirect)。这些是IE的发行版本,带有最新的修补程序。

我知道我可以尝试设置永久cookie而不是 session cookie。但是,这对我们的应用程序具有极大的安全隐患。

更新资料

当将用户添加为计算机上的本地管理员时,问题似乎自动消失了。只有时间才能证明此更改是否永久(积极)影响了此问题。

是时候解决ProcMon,看看是否存在资源访问问题。

更新#2

似乎有一个单一的问题有多个 Angular 。我很久以前曾报道说,让用户成为本地管理员似乎有帮助。而且确实如此,对许多用户而言。当然,这并不是真正的解决方案,但这确实使我们步履蹒跚。

然后更多的用户开始报告该问题,而管理员修复没有帮助。用户似乎主要是Win7,但Vista也受到了影响。它们似乎也大多是64位安装。

如以下某些成员建议的那样,将TabProcGrowth设置为0或1(均可行)似乎已在很大程度上解决了该问题。因此,我将接受的答案移至第一个提出该建议的人,因为它的影响更大。

这是一个很难解决的令人沮丧的问题,因为它很难复制,并且经常发生在与我没有直接联系的用户身上,或者在我接触他们时似乎并不起作用。我只能说 session 合并功能有些不对劲,但是我没有太多数据可提供给Microsoft以找到永久修复程序。

最佳答案

这是IE8中的"new"功能!

请查看下面的IE8博客以进行阅读。

http://blogs.msdn.com/askie/archive/2009/03/09/opening-a-new-tab-may-launch-a-new-process-with-internet-explorer-8-0.aspx

IE8可以使用多个进程来处理x个IE窗口。当您跨进程空间时,您会松动Cookie(Asp.Net session ID似乎在此进程范围内被保留)。

我个人认为它已损坏或存在错误。众所周知,当浏览“相同的域目标”时,应保持并重新发送cookie。 IE8具有不同的处理行为,以确保安全性。在我看来,它的行为很糟糕并且“即使在另一个窗口中访问相同的目标域,也会丢弃cookie”只是一个错误。

您可以通过Internet Explorer选项ehh ..修改注册表设置来修改IE8使用的进程数! (这就是我认为是个错误的原因。IE提供UI来修改这些设置将使其“企业级可接受”。

看待,

马文·史密斯

关于cookies - IE8在弹出窗口中丢失 session Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1324181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com