我在IE11中打开一个初始新选项卡(target _blank)时遇到了一些麻烦。当点击一个指向新选项卡的链接时(第一个请求),IE11不会发送会话cookie
当我关闭IE11的所有实例,然后打开一个新的浏览器并导航到测试网页(default.aspx)时,页面会在会话中存储一个值并在页面上显示会话ID。如果我刷新页面,会话ID保持不变。该页面有一个指向_blank的链接(default.aspx)。如果我点击这个链接,一个新的标签打开,但会话ID是不同的。如果我然后刷新原始窗口,会话ID现在匹配新窗口。
<%@ Page Language="C#" AutoEventWireup="true" Inherits="System.Web.UI.Page" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<% Session["StoredValue"]="Test"; %>
<div>SessionID: <%=Session.SessionID%></div>
<a href="/default.aspx" target="_blank">New Window</a>
<a href="http://www.google.com" target="_blank">3rd Party Window</a>
</body>
</html>
看来这个问题只发生在一个新的选项卡中打开同一个域中的第一个窗口(我有两个目标=“_空白”,并通过按住Ctrl键的同时单击链接验证问题)。
- 当我看着饼干交通与小提琴手我可以看到 会话cookie通常在初始请求从 Default.aspx的发送。当我点击链接在新选项卡 中打开页面时,会话cookie不会在请求标头中发送。
- 如果我重新启动浏览器,进入测试页面,手动打开一个新标签 和链接地址粘贴到该cookie在请求头正确发送 和新标签 会话原来标签相匹配如预期。
- 如果我重新启动浏览器,进入测试页面,从测试页面 Link目标_blank打开谷歌,然后单击在新标签打开测试页面的链接 饼干也在正确发送 按照预期,新窗口中的请求标题和会话匹配 原始窗口。
我相信这是一个客户端问题,但该网站运行在Windows Server Standard 2008 R2 SP 1 4.0集成网站与.NET 4.51安装(也试过只有4.5安装)。
客户端是Windows 7 64位运行IE11(11.0.9600.16476)。我已经在IE11上运行Windows 7的其他机器上验证了这个问题,并确认它在桌面模式下从Windows 8的IE10中不存在问题。 Chrome和Firefox中的所有功能都能按预期运行。
我已经验证问题仍然存在,即使我:来自中高
- 移动安全中
- 禁用保护模式
- 更改隐私为接受所有Cookies
- 添加该网站要么“本地Intranet”或“受信任的站点”区域网站列表
- 在响应标头中设置P3P精简版隐私策略,指出未收集或使用任何信息。
- 在响应头文件中设置一个P3P精简版隐私策略,通常在过去的IE版本中允许第三方Cookie在iframe内。
- 将网站ASP.NET会话状态设置更改为cookieless =“UseCookies”或“false”或完全删除属性(ASP.NET状态服务器)。
任何想法?有其他人看过这个问题或类似吗?
@ user3183307引用的错误报告似乎是我遇到的问题。我将在星期一与Microsoft联系并尝试获得此状态并澄清重现步骤,因为它们包含的示例不准确,并且不会重现此问题,因为这似乎只是服务器发送的第一方Cookie的问题。 – user3179118
不要忘记注册并将答案标记为已接受的答案。谢谢。 – SilverlightFox
[这是一个没有遇到这个错误的人的页面链接。](https://www.bayden.com/test/cookie/dupe.aspx)。 –