场景如下:
使用 Internet Explorer 9 登录到 Windows 7 Enterprise SP1 计算机,通过代理(我认为是 squid,但不是由我们的组织设置的)登录,该代理无需提示就使用当前 Windows 凭据。
用户经历以下过程:
- 访问网站并尝试下载 Office (2010) 文档
- IE9 会弹出对话框要求用户打开/保存。
- 用户点击打开
- 提示用户输入代理的凭据
- 用户按下 Esc 键或输入凭证
- 文档打开
因此,显然不需要凭据。但 IE9/Office 还是会询问。通常此提示在浏览器后面,因此用户甚至不知道他们需要执行任何操作。如果先保存文档,或者在 Firefox 中保存,则不会发生这种情况。我还在我们的防病毒解决方案中禁用了访问时扫描。
我在网上读到了很多关于 Sharepoint 提示的内容,但没有一篇与代理有关。大多数解决方案与“本地 Intranet”站点或组织管理控制下的站点有关(主要与 IIS 相关)。
我已经设法通过在代理旁路列表中明确命名一个站点来避免这种情况,但当然,对网络上的每个站点都这样做既不可能也不可行!
有人有过这种情况的经历吗?
答案1
我也在我们大学托管的服务器上遇到过这种情况。这似乎是 Office 处理从 Web 请求 Office 文件的方式。不提供 WebDAV 或其他功能供用户在服务器上保存文件的服务器应该禁用某些动词/扩展,如概述所示。
Microsoft 的知识库文章 2019105 对出现这种情况的原因提供了最佳见解,并提出了解决该问题的建议。知识库文章:http://support.microsoft.com/kb/2019105
原因:
当 Internet Explorer 打开 Office 文档时,会使用文档的路径启动相应的 Office 应用程序。然后,Office 应用程序尝试直接从服务器访问文档。这与其他浏览器和其他文件类型不同。大多数浏览器会下载文件并调用应用程序从本地缓存中打开文件。但是,当发生这种情况时,如果更改并保存了打开的文件,则更改只会对本地副本进行,而不会对服务器副本进行更改。
为了建立尽可能丰富的体验,Office 应用程序要做的第一件事就是与服务器通信,以确定服务器类型以及可用的 Web 创作协议。该应用程序通过直接向服务器发出 OPTIONS 请求来实现这一点。
作为访问服务器的新进程,Office 应用程序需要重新协商身份验证。此方法比新进程使用浏览器已建立的现有身份验证的方法更安全。
本文建议,当用户不想直接将文件保存回服务器时,应在服务器端完成此操作。具体来说,禁用对 OPTIONS 和 PROPFIND 动词/扩展的支持。