我注意到,当从 Web 浏览器外部(例如从 Excel 或 Word)单击链接时,即使该链接在同一浏览器窗口的新选项卡中打开,我的会话 cookie 最初也无法识别。
浏览器最终会识别出它的 cookie,但我很困惑为什么来自 Excel 或 Word 的初始链接不起作用。为了使其更具挑战性,在 Outlook 中单击链接效果很好。
有谁知道为什么会发生这种情况?我正在使用 Zend Framework 和 PHP 5.3。
这是因为 MS Office 使用 Hlink.dll 组件来查找链接是否是 Office 文档或其他内容。 MS Office 希望在不借助外部浏览器(使用 IE6 的 Hlink.dll 组件)的情况下打开文档内链接的文档。
如果会话 cookie 保护网站,Hlink 自然会被重定向到登录页面并到达 HTML 页面,但无法“理解”它在外部浏览器中打开它。请注意,它打开的不是原始 URL(预期行为),而是重定向的结果,即使它是 302 重定向。
Microsoft 在不受支持的组件 (Hlink.dll) 中存在该错误,但他们没有认识到该错误把它转到我们头上(试图让我们相信这是我们使用的 SSO 系统的缺陷,即会话 cookie)并拒绝升级它。它提供关闭查找功能的解决方法微软Office:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
Office\9.0\Common\Internet\ForceShellExecute:DWORD=1
或者为我们提供服务器端解决方案,以避免 HTTP 重定向并更改为 Javascript 重定向或 META REFRESH 重定向(即让 Hlink 获取原始 URL 上的文本/html 页面并使其运行外部浏览器来处理它)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)