有人会认为,从Word / Excel文档打开超链接时,标准浏览器会以所需的URL启动。 足够奇怪的是,情况并非如此-导致令人不快的副作用,并且使上述办公程序中基于会话/基于cookie的登录受保护页面的链接无法实现。
这归因于Microsoft名为“用户代理:Microsoft Office存在发现”的模块,该模块将在后台预加载链接并跟踪所有重定向。 可以按如下方式重现该问题:首先,创建两个文件,分别名为“ loggedin.php”(处于登录状态的页面)和“ login.php”(用于登录的页面):
5bcff34c5cecc130a0ee
5bcff34c5cecc130a0ee
直接调用“ loggedin.php”后,可以直接进入原始状态的“ login.php”,其中立即设置了“ logged_in” cookie。再次调用“ loggedin.php”后,将显示消息“您已登录如果您在Word或Excel(2007版或更高版本)中链接到“ loginin.php”,则无论您是否已经登录,都将始终直接进入“ login.php”。
Office程序在后台启动Internet Explorer的组件,以检查URL是否存在。 任何重定向都会被追踪到末尾,最后一个没有重定向的URL(在我们的例子中是“ login.php”)将被返回并使用标准浏览器调用,一种可能的解决方案是拦截和阻止第一页的后台调用:
5bcff34c5cecc130a0ee