MS-Word如何打开超链接?

14

我有一个带超链接的MS-Word文档,该超链接指向我的服务器上的身份验证重定向器。当我使用控制键加单击超链接时,我的服务器日志报告如下:

  1. 使用IE进行获取(fetch),
  2. 用IE获取重定向URL,然后
  3. 启动“默认浏览器”,在我的情况下是Firefox,并重新获取第二个(重定向)URL。

这是怎么回事?这是设计如此吗?

我注意到这一点,因为我的认证系统目前依赖于重定向器设置的cookie。我有一些关于使用基于URL的身份验证的想法,但首先需要了解Word行为背后的原因。

我有一些猜测,但我正在寻找权威的答案(或者至少是更好的推断)。

3个回答

17

15

实际上,这是一个“功能”。如果超链接指向一个Word文档,Word将尝试下载并打开该文档。(你可能会认为这是IE的原因是因为用户代理,但请求来自于Word进程中的WinInet。)

问题出在服务器没有响应页面,而是返回重定向和cookie信息时。Word遵循重定向以查看是否将获得Word文档,并最终获得HTML页面。然后,它决定由Firefox显示该页面,因此启动Firefox并加载最终重定向的URL,但没有任何服务器发送的cookie。

如果这是SSO登录,则Firefox可能最终需要那些cookie。


3

迟来的补充:

注意到同样的问题。在这里,使用MVC 4会导致查询字符串信息丢失。 Word只有在收到Http 200状态后才启动浏览器。

因此,我通过在控制器中检查请求是否来自IE7(可能只代表MS Word),并手动返回200来避免此问题。

然后“真正”的浏览器将重新发送http请求,一切都很好,因为从那里开始,请求会被正常处理,并且所有信息都在与“真正”的浏览器的会话中保留。

这是一个折中方法,但是它有效。而且仅适用于少量请求(在我们的情况下)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接