Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在弹出窗口中丢失asp.net会话。仅适用于IE,仅适用于部分用户_Javascript_Asp.net_Session_Iframe - Fatal编程技术网

Javascript 在弹出窗口中丢失asp.net会话。仅适用于IE,仅适用于部分用户

Javascript 在弹出窗口中丢失asp.net会话。仅适用于IE,仅适用于部分用户,javascript,asp.net,session,iframe,Javascript,Asp.net,Session,Iframe,我有一个带有集成iframe的asp.net网页。在这个iframe中,我调用window.open打开一个弹出窗口。弹出url是绝对的,但在同一个域中 对于大约1%使用Internet Explorer(多个版本)的用户,asp.net会话对象在弹出窗口中丢失(空) 我曾尝试收集设置信息以从一组用户中识别模式,但没有结果。有一种理论认为他们都是Citrix的客户,但事实并非如此 有人经历过类似的事情并解决了它吗?我猜您的站点没有定义如何跟踪用户的有效标题,所以IE不会用http请求转发[ses

我有一个带有集成iframe的asp.net网页。在这个iframe中,我调用window.open打开一个弹出窗口。弹出url是绝对的,但在同一个域中

对于大约1%使用Internet Explorer(多个版本)的用户,asp.net会话对象在弹出窗口中丢失(空)

我曾尝试收集设置信息以从一组用户中识别模式,但没有结果。有一种理论认为他们都是Citrix的客户,但事实并非如此


有人经历过类似的事情并解决了它吗?

我猜您的站点没有定义如何跟踪用户的有效标题,所以IE不会用http请求转发[session]cookies

您可以通过在web.config中添加示例P3P头来验证这一点。您需要了解不同标记的含义,以及该示例标题是否与您的用例匹配,或者您是否需要创建自己的标记

<system.webServer>
  <httpProtocol>
    <customHeaders>
      <add name="P3P" value="CP=&quot;NON COR CUR OUR BUS NAV&quot;" />
    </customHeaders>
  </httpProtocol>
</system.webServer>

对于我们来说,有了相关的答案。在我们的例子中,使用的是Jetty Web服务器,所以要小心过滤

从桌面上指向网站的“常规”快捷方式启动浏览器。用IE8。(我没有找到我的MSDN参考,但我认为它只是Windows XP。)注意:Citrix用户经常被迫使用桌面上的链接。因此,这可能会解决Citrix部分的问题

这里有更多非常相似的问题。您是否查看了stackoverflow上的所有帖子,包括:

  • (这也是对IE7类似问题的回答: )
  • (在第一个问题中也提到)是从模式弹出窗口或类似窗口打开弹出窗口的问题。IE 8测试版,所以可能不相关
  • (java库中的bug,因此可能也不相关)
  • 如果让我总结一下:

  • 有许多问题似乎与asp.net有共同之处。试着看一下
  • 您说没有特定的Internet Explorer版本受到影响。这意味着,对于不同版本的IE,您可能会看到不同的问题
  • a) 我认为stackoverflow应该有很多答案

  • 请遵循以下指南:

    您应该构建自己的P3P策略

    例如,如果您将其添加到Global.asax中,它将在IE8中工作:

    protected void Application_BeginRequest(object sender, EventArgs e)
    {
         HttpContext.Current.Response.AddHeader("p3p", "CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"");
    }
    
    但是不要只复制上面的示例,因为该策略必须在您的网站上反映您的实际隐私策略。否则,当浏览器验证您的内容/行为时,这可能会对以后的情况产生影响


    没有人希望从某些浏览器供应商那里被列入黑名单,对吗?

    相同的域和相同的web应用程序?是的,相同的域和应用程序。