Office文档提示您在匿名SharePoint站点中登录

时间:2008-12-17 17:45:33

标签: security sharepoint anonymous

我有一个配置为匿名访问的MOSS 07站点。此站点中有一个文档库,也启用了匿名访问。当匿名用户单击此库中的PDF文件时,他或她可以正常阅读或下载它。当用户单击Office文档时,系统会提示他或她使用登录框。用户可以在不输入登录的情况下取消此框,并将被带到文档中。

这在IE中发生,但不在FireFox中发生。

我在网上看到一些对此问题的引用,但没有明确的解决方案: http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.sharepoint.windowsservices.development&tid=5452e093-a0d7-45c5-8ed0-96551e854cec&cat=en_US_CC8402B4-DC5E-652D-7DB2-0119AFB7C906&lang=en&cr=US&sloc=&p=1

http://www.sharepointu.com/forums/t/5779.aspx

http://www.eggheadcafe.com/software/aspnet/30817418/anonymous-users-getting-p.aspx

16 个答案:

答案 0 :(得分:8)

要禁用登录提示从SharePoint 2010打开office文档,请在web.config中执行以下设置

<system.webServer>
  <security>
    <requestFiltering allowDoubleEscaping="true">
      <!-- here's where the magic happens -->
      <verbs allowUnlisted="true">
        <add verb="OPTIONS" allowed="false" />
        <add verb="PROPFIND" allowed="false" />
      </verbs>
    </requestFiltering>
  </security>
</system.webServer>

答案 1 :(得分:3)

如果在MS Word中启用了Sharepoint Shared Workspace,如果用户无权访问或创建共享工作区,则可能会提示用户使用Windows登录。请关注以下事项:

  1. 打开MS Word
  2. 转到工具/选项
  3. 单击“常规”选项卡
  4. 点击服务选项
  5. 单击“共享工作区”
  6. 取消选中“文档是工作区或SharePoint网站的一部分。”的复选框。
  7. 点击确定
  8. 点击确定
  9. 尝试从SharePoint网站点击MS Word文档。
  10. 如果解决此问题,请在每个MS Office程序中重复步骤以消除提示。 (Excel,PowerPoint,Visio等)

    http://office.microsoft.com/en-us/word/HP010414641033.aspx

答案 2 :(得分:1)

令人遗憾的是,我发现的唯一工作中断了登录用户的一些功能(无法上传多个文件,连接到Outlook等)。

如果这是可以接受的,或者您想尝试并看到:

  1. 在中央管理员中&gt; <应用程序管理>应用程序安全性&gt;身份验证提供商选择您的Web应用程序并选择您的提供商(可能是“默认”)。

  2. 为客户端集成选择“否”并保存设置。

  3. 打开您的网络配置,找到第<add verb="OPTIONS,PROPFIND,PUT,LOCK,UNLOCK.....行并删除动词OPTIONS。

  4. 您不应再被要求提供凭证。要反过来,只需撤消两个更改。

答案 3 :(得分:1)

如果你可以点击取消它出现问题是... AuthForwardServerList

http://support.microsoft.com/kb/943280

Office不知道该站点是受信任的/本地的,因此它不会查找您的凭据并提示您有机会提供这些凭据。这是一个特色......

如果您使用正确的注册表项列出您的网站,它将转发您不需要的凭据,但不会收到提示。

答案 4 :(得分:1)

如果您有网址重写模块或urlscan,请配置软件以将http 403发送到http OPTIONS请求。

答案 5 :(得分:1)

在Sharepoint Server 2010中,解决方法方法略有改变,因为新一代Sharepoint无法在web.config中保存动词。因此,您必须更改方法。首先,您打开IIS 7.0并选择您的应用程序站点。您可以在屏幕中间看到许多项目。您选择并双击请求过滤器。在请求过滤器中,您可以看到“动词”。您可以将OPTIONS和PROPFIND谓词添加到拒绝模式。最后测试你的网站。有时,Sharepoint需要关闭您站点的客户端集成模式。如果需要,您可以在管理中心关闭客户端集成模式。

答案 6 :(得分:1)

可能的原因和解决方案: http://support.microsoft.com/kb/943280

“当您从运行Windows Vista或Windows 7且未配置代理的计算机访问FQDN站点时,系统会提示您输入凭据”

“例如,当您在没有配置代理的基于Windows Vista的客户端计算机上使用2007 Microsoft Office从Microsoft Office SharePoint站点打开Microsoft Office文件时,系统会提示您进行身份验证。”

答案 7 :(得分:0)

我的猜测是Office客户端正在从启用了匿名访问的其他位置加载基础文档模板。这也解释了为什么您仍然可以打开文档,因为Office客户端也可以在不加载最初创建文档的模板的情况下工作。若要在Word 2007中查看模板URL,请从Word选项中启用“开发人员功能区”,然后单击功能区上的“文档模板”按钮。

答案 8 :(得分:0)

似乎不是这样。有问题的文档之一是Excel文件,不会使用.doc模板。此外,在“文档模板”对话框中,如果我基于它创建新的Word文档,则它不会为我提供SharePoint模板文件的URL。它只是说模板是“正常”。我还尝试在文档库级别禁用模板,但它不会更改密码情况。

答案 9 :(得分:0)

在IE中打开Office文档时,ActiveX组件用于调用客户端应用程序,并提示它打开文档。在其他浏览器中,下载是标准超链接,由浏览器处理。

这是否会在搜索结果和文档库中的标准链接列中发生?

答案 10 :(得分:0)

使用像Fiddler这样的工具(在第一个链接引用中引用/建议,请参阅http://www.fiddlertool.com/fiddler/了解更多信息)是确定我所知道的此类问题的根本原因的唯一有效方法。无论是什么导致这种情况都将通过HTTP发生。像Fiddler这样的调试代理会准确地向您显示导致身份验证请求的URL /资源。

在相关的说明中,您运行的是该平台的最新版本吗?检查以确保MS尚未解决此问题可能是明智之举,例如在修补程序中。我知道的最佳更新列表如下:http://www.harbar.net/articles/postsp1.aspx

答案 11 :(得分:0)

选中此项:匿名用户从SharePoint网站下载Office文档时删除登录框

http://www.theblackknightsings.com/RemoveLoginBoxWhenAnonymousUsersDownloadOfficeDocumentFromSharePointSite.aspx

  

在SharePoint中开发Extranet / Internet站点时,您通常希望允许匿名访问,这样可以很好地工作。   但是有一种情况是开箱即用的体验在匿名访问方面失败,那就是当您允许用户下载Microsoft Office文档时。在这种情况下,IE / Office弹出几个登录对话框,如果用户取消这些文档按预期打开,但你真的不希望用户必须取消几个对话框来打开你的文件

问题是办公室试图变得智能并发出Microsoft Office协议发现请求以查看允许用户执行多少操作,但在用户登录之前,SharePoint会以拒绝访问进行响应。

我发现的解决方案是实现一个HttpModule,如果用户没有登录并拒绝登录框,则拒绝Microsoft Office Protocol Discovery请求

答案 12 :(得分:0)

我猜你使用的是Windows Vista。我们在Vista上遇到了这个问题但在XP上却没有。


来自Microsoft:在Windows Vista中,当您使用Internet Explorer访问WebDAV资源时,Internet Explorer使用Web客户端服务。 Web客户端服务使用Windows HTTP服务(WinHTTP)来执行远程主机的网络I / O. WinHTTP仅发送用户凭据以响应本地Intranet站点上发生的请求。但是,WinHTTP不会检查Internet Explorer中的安全区域设置,以确定网站是否位于允许自动发送凭据的区域中。

如果未配置代理,则WinHTTP仅将凭据发送到本地Intranet站点。

注意如果URL在服务器名称中不包含句点(例如,在以下示例中),则假定服务器位于本地Intranet站点上: http://sharepoint/davshare

如果URL包含句点,则假定服务器位于Internet上。句点表示您使用FQDN地址。因此,除非配置了代理,否则不会自动向此服务器发送凭据,除非指示此服务器进行代理绕过。


这是一个尚未完全修复的已知问题。这里有一个关于它的MSDN博客:http://blogs.msdn.com/sharepoint/archive/2007/10/19/known-issue-office-2007-on-windows-vista-prompts-for-user-credentials-when-opening-documents-in-a-sharepoint-2007-site.aspx

此处发布了一个有趣的解决方法:http://grounding.co.za/blogs/neil/archive/2008/11/10/workaround-sharepoint-keeps-prompting-for-login-when-creating-office-2007-documents-on-vista.aspx

最终,Vista SP1中包含一个补丁,但它也需要注册表编辑。我们最近在Windows Vista SP2客户端上使用以下步骤来实现此功能:

打开注册表。导航到以下子项:

HKEY_LOCAL_MACHINE \ SYSTEM \ CURRENTCONTROLSET \服务\ Web客户端\参数

创建一个名为AuthForwardServerList的新Multi-String值,并为其赋值(例如): HTTPS:// .Contoso.com
HTTP://
.dns.live.com
将* .microsoft.com
https://172.169.4.6

然后重新启动WebClient服务。

答案 13 :(得分:0)

我们能够通过更改IE设置来实现这一点。

我们在可信站点中有站点URL。 在“自定义设置”下,将“用户身份验证”设置为:使用当前用户名和密码自动登录

答案 14 :(得分:0)

我找到了解决方案。首先,在inetpub下打开Web应用程序配置文件。然后你找到添加动词部分。在本节中,在安装时添加了许多动词。删除选项和Profind谓词并保存配置文件。最后测试问题并查看它。问题已经完成。

答案 15 :(得分:0)

我找到了以下解决方法:

http://www.objectsharp.com/cs/blogs/max/archive/2008/04/21/sharepoint-public-facing-website-and-microsoft-office-documents.aspx

为了简单起见:

  1. 禁用客户端集成

  2. 从网站的web.config文件中的注册行中删除OPTIONS谓词