代码之家  ›  专栏  ›  技术社区  ›  djsadinoff

MS Word如何打开超链接?

  •  13
  • djsadinoff  · 技术社区  · 15 年前

    我有一个带有超链接的MS Word文档。该超链接指向我的服务器上的身份验证重定向程序。当我控制单击超链接时,我的服务器日志报告它

    1. 那就用IE来取吧
    2. 用IE获取重定向URL,然后
    3. 启动“默认浏览器”(在我的例子中是firefox),然后重新获取第二个(重定向)URL。

    什么给予?这是设计的吗?

    我注意到了这一点,因为我的认证系统目前依赖于重定向程序设置的cookie。对于这一点,我有一些关于使用基于URL的auth的想法,但是我首先需要知道是什么激发了单词的行为。

    我有一些猜测,但我在寻找权威性的东西(或者至少是一个更明智的猜测)。

    3 回复  |  直到 11 年前
        1
  •  16
  •   Ezran    15 年前

    不幸的是,是的。他们试图将其归咎于“Web服务器使用的单一登录系统的限制”…

    http://support.microsoft.com/kb/899927

        2
  •  15
  •   Chuck Wagner    13 年前

    实际上,这是一个“特性”。如果超链接指向Word文档,Word将尝试下载并打开该文档。(您一定认为这是IE,因为用户代理,但请求是由Wininet在字处理过程中发出的。)

    当服务器不使用页面响应,而是使用重定向和cookie响应时,就会出现混乱。Word跟踪重定向,查看是否会得到Word文档,最终会得到一个HTML页面。然后,它决定火狐应该显示它,所以它使用最终的重定向URL启动火狐(但不使用服务器发送的任何cookie)。

    如果这是一个SSO登录,那么火狐最终可能需要这些cookie。

        3
  •  3
  •   Paul R    11 年前

    后期添加:

    注意到同样的问题。在MVC4中,它导致了查询字符串信息的丢失。 只有在收到HTTP 200状态后,Word才会启动浏览器。

    因此,我通过检查控制器请求是否来自IE7(表示可能只是MS Word)并手动返回200来避免这种情况。

    然后“real”浏览器将重新发送HTTP请求,所有的一切都会很好地结束,因为从那里请求被正常处理,所有信息都会保留在“real”浏览器会话中。

    有点变通,但嘿,它很管用。它只适用于少量的请求(在我们的情况下)。