SharePoint客户端对象模型 - 无法在指定的URL上联系站点 - 混合身份验证

时间:2015-07-17 14:42:13

标签: authentication sharepoint sharepoint-2010

我们的SharePoint环境使用基于声明的身份验证 - 使用 外部用户的FBA和内部用户的AD。

我无法使用默认凭据或Windows进行连接 使用SharePoint客户端对测试SharePoint网站进行身份验证 边对象模型(CSOM)。我可以使用FBA用户连接但是 要求使用默认凭证进行连接(假设这是 应用程序池ID绑定到SharePoint应用程序)或至少AD 帐户。

执行ClientContext.ExecuteQuery时收到的消息是 - 无法通过指定的URL联系网站。一世 对此进行了广泛的研究,并尝试了许多建议,包括以下内容:

  1. 使用绑定到clientContext.ExecutingWebRequest的事件处理程序 这会添加到WebRequest标头中。解决方法在此处 https://social.technet.microsoft.com/Forums/office/en-US/16cd0e26-8f3b-4ef2-bac4-c2c59849ab96/authentication-in-clientcontext-in-sharepoint-2010?forum=sharepointdevelopmentprevious
  2. 使用System.Net.CredentialCache.DefaultCredentials
  3. 使用System.Net.NetworkCredential传入AD帐户
  4. 感谢您的任何想法或建议。

    汤姆

    我应该提到我们正在使用SharePoint 2010,并且我正在尝试检索和更新用户配置文件属性。当我开始编写解决方案来执行此操作(使用我的FBA连接的ClientContext)时,我读到在SharePoint 2010中,您只能使用UserGroup Web服务更新用户属性。尝试通过Web服务进行连接时,我收到了拒绝访问权限。我相信ClientContext位于Web服务之上,因此场景/问题是相同的。再次,非常感谢任何想法或建议。

1 个答案:

答案 0 :(得分:0)

嗯,经过大量研究,似乎有一个解决方案。第一步是以编程方式向请求添加标头。唯一的问题是,除了添加标头之外,还必须向SharePoint添加其他Windows身份验证区域。我不想在生产环境中添加另一个区域。

由于我放在一起的程序访问SharePoint和非SharePoint数据库,我想在非SharePoint服务器上运行它,因此我很可能会使用专门为此目的创建的FBA帐户。

如果有人感兴趣,here是解释如何将标头添加到网络请求的另一个链接。您将收到错误 - 对象已移动而不添加其他区域。 Here是描述添加区域的链接。