当我关闭IE11的所有实例,然后打开一个新的浏览器并导航到测试网页(default.aspx)时,页面会在会话中存储一个值,并在页面上显示会话ID.如果刷新页面,会话ID保持不变.该页面有一个指向自己的链接(default.aspx),目标是_blank.如果我单击此链接,将打开一个新的选项卡,但会话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>
看起来这个问题只发生在新选项卡中打开的同一个域上的第一个窗口(我已经验证了target =“_ blank”的问题,并且在单击链接时保持CTRL).
>当我看到与Fiddler的cookie流量我可以看到那个
会话cookie在初始请求中正常发送
Default.aspx的.当我点击链接在一个新的选项卡中打开页面
会话cookie未在请求头中发送.
>如果我重新启动浏览器,请转到测试页面,打开一个新的选项卡
手动粘贴链接目标到它发送的cookie
正确地在请求标头和新选项卡中的会话
符合预期的原始标签.
>如果我重新启动浏览器,从a打开google
在测试页面中链接定位_blank,然后单击链接
在新选项卡中打开测试页,cookie也正确发送
在请求头和新窗口中的会话匹配
原来的窗口如预期.
我认为这是一个客户端问题,但是该站点是从安装了.NET 4.51的4.0综合网站(Windows Server Standard 2008 R2 SP 1)运行的,同时仅安装4.5.
客户端是Windows 7 64位运行IE11(11.0.9600.16476).我已经验证了从IE11运行Windows 7的其他机器上的问题,并确认在桌面模式下,Windows 8在IE10中不是问题.一切都按照预期的方式在Chrome和Firefox中运行.
我已经验证问题仍然存在,即使我:
>将安全性从中高转移到中等
>禁用保护模式
>更改隐私以接受所有Cookie
>将站点添加到本地Intranet或可信站点区域网站列表
>在响应头中设置一个P3P紧凑型隐私策略,表示没有收集或使用任何信息.
>在响应标题中设置一个P3P紧凑型隐私政策,通常可以接受该标准,以允许以前版本的IE中的iframe中的第三方Cookie.
>将ASP.NET会话状态设置更改为cookieless =“UseCookies”或“false”或完全删除属性(ASP.NET State Server).
有任何想法吗?有其他人看到这个问题还是类似的?