当您在 SharePoint Server 2016 中匿名打开文档时, 系统会提示您输入凭据

注意: 我们希望能够尽快以你的语言为你提供最新的帮助内容。本页面是自动翻译的,可能包含语法错误或不准确之处。我们的目的是使此内容能对你有所帮助。可以在本页面底部告诉我们此信息是否对你有帮助吗?请在此处查看本文的英文版本以便参考。

适用对象:

  • Microsoft SharePoint Server 2016

  • 基于 Windows Installer (MSI) 的 Microsoft Office 2016 应用程序版本 (不适用于 Office 365 应用程序)

  • 为 SharePoint 网站或库启用的匿名访问

  • 匿名访问 Office 文档

  • 使用与用于登录 Windows 的帐户不同的帐户访问 Office 文档

症状

当您使用基于 Windows Installer (MSI) 的 Office 应用程序版本在 SharePoint Server 2016 中打开文档时, 如果满足 "应用于" 部分中的条件, 系统会提示您输入凭据。

出现此问题的原因

Office 应用程序发送授权:用于与 SharePoint Online 和 OneDrive for business 兼容的载荷标头。sharepoint server 2016 会发送 HTTP 401 身份验证提示, 原因是 SharePoint Server 2016 本地处理具有授权的请求的方式: 载荷标头, 也是由于缺少X-IDCRL_ 而导致的问题已接受: t头。

解决此问题的方法

若要解决此问题, 请禁用受影响的 web 应用程序的选项请求, 然后使用 URL 重写规则有效地删除授权: HEAD 请求中的载荷标头。仅使用 SharePoint Server 2016 支持的 URL 重写规则来删除请求标头值。有关详细信息, 请参阅SharePoint 2016、2013、2010和2007中的重写和重定向支持

若要实现此解决方法, 请执行以下步骤。

步骤 1: 通过 web.config 对 web 应用程序的阻止选项请求

若要阻止选项请求, 请更改 web 应用程序的 web.config 文件, 如下所示:

< system.webserver >

< 安全 >

< requestFiltering allowDoubleEscaping = "true" >

< 动词 applyToWebDAV = "false" >

< 删除动词 = "选项"/>

< 添加谓词 = "选项" 允许 = "false"/>

</动词 >

备注不阻止 Web 分布式创作和版本控制 (WebDav) 请求的选项请求。

步骤 2: 下载并安装 IIS URL 重写扩展

在 SharePoint Web 前端 (WFE) 服务器上下载并安装IIS URL 重写扩展

步骤 3: 将 HTTP_Authorization 服务器变量添加到 IIS

  1. 启动 " Internet 信息服务 (IIS) 管理器", 在左窗格中选择 SharePoint 服务器, 然后在中心窗格中选择 " URL 重写"。

  2. 在右窗格中, 选择 "查看服务器变量"。

  3. 若要添加新的服务器变量, 请选择 "添加"。

  4. 键入服务器变量名,如HTTP_Authorization, 然后选择"确定"

  5. 在右窗格中, 选择 "返回到规则"。

  6. 验证在 applicationhost.config 文件中添加了 HTTP_Authorization server 变量, 如下所示:

< system.webserver >

...。
        <rewrite >

< allowedServerVariables >

< add name = "HTTP_Authorization"/>

</allowedServerVariables >

</重新编写 >

步骤 4: 添加规则以停止处理 URL 重写 其他请求方法的规则

如果请求方法不是 head 的 (仅更改 HEAD 请求), 你可以添加规则以停止处理进一步的 URL 重写规则。为此, 请按照下列步骤操作:

  1. 选择 web 应用程序, 然后选择 " URL 重写"。

  2. 在右窗格中, 选择 "添加规则" 以添加新规则。

  3. 键入规则名称, 如 " Authrule-HEADonly"。

  4. 在 "匹配 URL " 部分中, 指定以下值:

    1. 请求的 URL: 匹配模式

    2. Using: 正则表达式

    3. 模式: ^ (?!。* \.aspx)。 * $

    4. 忽略大小写选项: 已选中

  5. 在 "条件" 部分中, 选择 "添加", 然后指定以下值:

    1. 条件输入: {REQUEST_METHOD}

    2. 检查输入字符串: 与模式不匹配

    3. 模式: HEAD

    4. 忽略大小写选项: 已选中

  6. 编辑操作部分, 如下所示:

    1. 操作类型: 无

    2. "停止处理后续规则" 选项: "已选择"

  7. 在右窗格中, 选择 "应用"-> "返回到规则"。

备注请确保已启用该规则。若要执行此操作, 请在右窗格中查找 "禁用规则" 选项。选择规则后, 将显示此选项。

步骤 5: 添加 URL 重写规则以删除 授权: 载荷标头

若要有效删除授权:请求的载荷标头, 请使用 URL 重写规则, 如下所示:

  1. 选择 web 应用程序, 然后选择 " URL 重写"。

  2. 在右窗格中, 选择 "添加规则" 以添加新规则。

  3. 键入规则名称, 如 " Authrule"。

  4. 在 "匹配 URL " 部分中, 指定以下值:

    1. 请求的 URL: 匹配模式

    2. Using: 正则表达式

    3. 模式: ^ (?!。* \.aspx)。 * $

    4. 忽略大小写选项: 已选中

  5. 在 "服务器变量" 部分中, 选择 "添加", 指定以下值, 然后选择"确定":

    1. 服务器变量名称: HTTP_Authorization

    2. : 无

    3. "替换现有值"选项: "已选择"

  6. 在 "操作" 部分中, 指定以下值

    1. 操作类型: 无

    2. 停止处理后续规则: 已选中

  7. 在右窗格中, 选择 "应用"-> "返回到规则"。

备注请确保已启用该规则。若要执行此操作, 请在右窗格中查找 "禁用规则" 选项。选择规则后, 将显示此选项。

在 SharePoint Server 2016 场中解决此问题

在服务器场中的每个 SharePoint Web 前端 (WFE) 服务器上重复上一节中的所有步骤, 以确保所有服务器的配置完全相同。如果你已使用了重写规则, 则需要将上一节中的两个规则设置为列表中的最后两个规则, 因为 HEAD 规则将禁用后续规则。

由于 IIS URL 重写扩展的限制, 当前无法将规则合并为允许它们正常工作的方式。 此情况在将来的扩展修订中可能会更改, 或者将来可能会发现备用配置。 目前, 这些方法是使用 URL 重写解决此问题的最佳方法。

扩展你的 Office 技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×