php - Ajax 文件浏览器自动登录 Microsoft Office 身份验证

标签 php windows-server-2012 iis-8.5 ithit-ajax-file-browser

我正在使用 AjaxFileBrowser 浏览 WebDav 文件:

每个用户都有一个凭据和关联的文件夹。我成功地让用户进行了身份验证并避免了浏览器中的登录弹出窗口。

我在 SSL 下使用基本身份验证。

现在我尝试使用我的 Microsoft Office 应用程序运行文件,我收到一个身份验证弹出窗口,以便能够读取/写入这些文件。

删除此身份验证并使其自动进行是否有任何问题。

正如官方文档中提到的,我可以使用 NTLM 或 Kerberos,但我将放弃第一个身份验证步骤。

最佳答案

遗憾的是,无法通过 Microsoft Office 的基本身份验证来避免身份验证对话框。 Microsoft Office 和网络浏览器(或您的其他 WebDAV 客户端应用程序)在不同的进程中运行,在这种情况下网络浏览器无法传递身份验证信息。

这里有几个选项可以完全避免登录对话框:

  1. 实现 MS-OFBA 身份验证或将 MS-OFBA 与 Basic 结合使用。 见 Choosing WebDAV Server Authentication Shema 文章 确定 MS-OFBA 是否是您所需要的。你完全可以避免登录
    对话框在 Internet Explorer 的情况下(但在其他网络的情况下不是 浏览器)。

    Windows 上的 Microsoft Office 应用程序使用 Internet Explorer 显示 MS-OFBA 登录对话框。如果用户正在登录您的 使用 Internet Explorer 访问网站并在登录期间检查 “记住我”复选框,将共享永久 cookie 在 Microsoft 中使用的 IE 窗口(带有单个网站)之间 Office 登录对话框和 IE 网页显示您的网站。这 打开 Microsoft Office 时不会显示登录对话框 在这种情况下的文件。

    使用其他网络浏览器,用户将获得 MS-OFBA 登录对话框 至少在第一次访问文档期间。如果他检查 文档访问期间的“记住我”复选框,下次 不会显示登录对话框。

    此方案也适用于 Microsoft Office for MAC,但我可以 不知道 MAC 上的 MS Office 在其内部使用什么网络浏览器 登录对话框。

  2. 实现 URL 身份验证。您的 url 看起来像 http://webdavserver.com/[SessionID1234567890]/path/file.docx 确保你这样做 在这种情况下,不将 ID 作为 URL 参数传递,作为参数传递 被 Microsoft Office 截断。

关于php - Ajax 文件浏览器自动登录 Microsoft Office 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27230461/

相关文章:

php - 将数组值传递给 Laravel 工厂

php - 使用 ajax/javascript 调用 php 函数

php - 如何使用 ajax post 和 url 的放大弹出窗口?

php - 来自 Windows 服务器的 mysql 在线仪表板

azure - 适用于运行 Windows Server 2012 的 azure 的正确 gacutil 命令语法

asp.net-core-2.0 - Asp.net Core2 Web Api 发布到 IIS 8.5 总是在访问时给出 404

php - 在php中加入两个数组

c# - Windows 商店应用程序开发 - Windows 2012

c# - 使用 Asp.Net Core 强制语言环境

php - file_get_contents ('php://input' ) 通过 PUT 请求返回空字符串