0

我将其发布为其他任何有此问题的人的问题和答案,因为它绝对是要调试的 PITA。


我们有一个用于 Word 的任务窗格加载项,它有一个使用 cookie 存储会话状态的登录页面。这在 Windows 7 上的 Internet Explorer 11 中的 Word Web之外的所有内容中都可以正常工作。

通过使用 Fiddler,我们可以看到我们的 cookie 已设置并且一切正常,即使会话 cookie 保持不变(这完全是另一个问题),但无论出于何种原因,.AspNet.ApplicationCookie 永远不会随请求一起返回HTML 页面 - 但它被发回以请求 JavaScript。哇。

4

1 回答 1

0

请参阅此帖子的答案:Cookie 被阻止/未保存在 Internet Explorer 的 IFRAME 中


该问题与 Word Web 中的任务窗格位于 IFRAME 中这一事实有关。它与 P3P 策略有关——据我们所知,它不会被其他任何东西使用。

无论如何,这是该答案的重要部分:

我一天中的大部分时间都在研究这个 P3P 事物,我觉得有必要分享我的发现。

我注意到 P3P 概念非常过时,似乎只有 Internet Explorer (IE) 真正使用/强制执行。

最简单的解释是:如果您使用 cookie,IE 希望您定义一个 P3P 标头。

...以及解决方案...

简而言之 - 为了让 IE 满意 - 将以下行添加到您的 PHP 代码中(其他语言应该看起来相似)

header('P3P: CP="Potato"');

问题解决了,IE 对这个土豆很满意。

所以基本上你需要将此 HTTP 标头添加到所有响应中以使 IE 发挥作用。

如果您使用 IIS 来托管您的网站,请将其添加到 web.config:

<configuration>
  <system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="P3P" value="CP='Potato'" />
      </customHeaders>
    </httpProtocol>
  <system.webServer>
<configuration>
于 2018-01-12T03:07:19.927 回答