使用基于声明的身份验证在SharePoint 2010中保存在文档库中的多个登录信息

时间:2011-01-20 19:48:31

标签: sharepoint sharepoint-2010

我们的环境是Sharepoint 2010,使用基于声明的身份验证创建了一个Web应用程序(以及顶部的网站集)。第一个站点使用端口881.它使用集成的Windows身份验证。创建另一个Web应用程序,使用端口882扩展第一个应用程序。此站点使用基于表单的身份验证,成员资格提供程序是System.Web.Security.ActiveDirectoryMembershipProvider,名为admembers。我已在两个站点上关闭了客户端集成。

当我登录到881网站时,在我的公司网络上,使用sharepoint使用的相同域帐户登录到计算机,我可以打开保存在文档库中的Office文件,然后在相应的Office应用程序中打开,没有要求我再次登录。但是,如果我从不在我们网络上的计算机登录到Sharepoint,或者使用不是域帐户的帐户登录计算机,则在打开Office文档时会再次提示您登录。如果我选择保存选项,则不会提示,但如果我在对话框窗口中选择打开,则会被迫再次输入我的域凭据。

当我登录使用FBA的882网站时,我遇到了同样的问题。如果我打开Office文档,则会打开相应的Office应用程序,并通过向我显示一个加载了登录页面的对话窗口来询问我的凭据。如果我选择保存文件,则不会提示我登录,并且文件将保存到本地文件夹。

我不能指望我的用户在每次打开Office文档时都会再次登录,例如Work,Excel,Powerpoint等。我尝试了很多修复,包括禁用客户端集成,更改浏览器处理模式(严格/允许),更改Internet Explorer设置(用于集成Windows身份验证),更改集成的Windows身份验证站点以使用基本身份验证,甚至使用jquery来破解页面以调用执行“下载副本”功能的sharepoint javascript函数。它们都不起作用:当选择在浏览器中“打开”Office文档时,用户必须再次登录,或者只是关闭对话窗口而不登录(只要关闭区域的客户端集成)。

我希望使用Windows身份验证或基于表单的身份验证来完成此任务。

帮助!

3 个答案:

答案 0 :(得分:2)

我在一篇类似的帖子中找到了this answer,当我测试它时,它似乎解决了我的问题。它的要点是你需要拒绝IIS中的HTTP Verbs OPTIONS和PROPFIND。说完这个,我不是IIS大师,我不确定这意味着什么或它可能会影响到什么。其他人可以对此有所了解吗?

我在FBA网站上使用SharePoint 2010的一些背景知识。

答案 1 :(得分:1)

您有标准的三个用例:

  1. 员工内部网访问
  2. 员工远程访问
  3. 合作伙伴远程访问
  4. 员工内部网访问

    这通常总是开箱即用,看起来它适合你。

    员工远程访问

    我见过这项工作的唯一方法(我尝试了很多方法)就是获得TMG或ISA。基本上ISA是使用SSL在FORMS auth中设置的,它捕获auth详细信息,然后将它们传递给sharepoint服务器。 (和其他服务器,如果你有它们,例如OWA用于sharepoint邮件Web部件) 如果你选择"是私人电脑" ISA登录屏幕上的选项,然后Office文档共享auth cookie并且不提示进行另一次登录。我遇到了很多问题,但是一旦我安装了TMG,它们就全都消失了。我现在不建议任何其他方法。

    此方法的额外好处是远程员工被视为与Intranet用户相同的帐户。您使用单独的Web应用程序进行设置的方式意味着它们将是不同的帐户,因此[checkout / modifiedby / createdby / personalization]等内容将是不同的帐户(尽管它们看起来相同)

    合作伙伴远程访问

    这可能永远不会在某些客户端(尤其是Vista)上运行,因为IE需要与Office共享身份验证

答案 2 :(得分:1)

如果这是sharepoint 2010,请尝试此操作。 GET-SPSecurityTokenServiceConfig 查看输出中的UseSessionCookies值。如果为True,请应用下面的powershell。

$sts = Get-SPSecurityTokenServiceConfig
$sts.UseSessionCookies = $false
$sts.Update() 

如果UseSessionCookies为true,您必须登录任何您想要下载的文档...