【问题标题】:Office Web applications (Word, Excel, Powerpoint) add-ins dropping cookie in IE11 on Windows 7Office Web 应用程序(Word、Excel、Powerpoint)加载项在 Windows 7 上的 IE11 中放置 cookie
【发布时间】:2018-01-12 03:07:19
【问题描述】:

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


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

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

【问题讨论】:

    标签: windows-7 office365 internet-explorer-11 office-addins apps-for-office


    【解决方案1】:

    查看此帖子的答案:Cookie blocked/not saved in IFRAME in Internet Explorer


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

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

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

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

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

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

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

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

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

    所以基本上你需要将这个 HTTP Header 添加到所有响应中才能让 IE 发挥作用。

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

    <configuration>
      <system.webServer>
        <httpProtocol>
          <customHeaders>
            <add name="P3P" value="CP='Potato'" />
          </customHeaders>
        </httpProtocol>
      <system.webServer>
    <configuration>
    

    【讨论】:

      猜你喜欢
      • 2019-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-13
      • 2013-01-22
      • 1970-01-01
      相关资源
      最近更新 更多