如何使用凭据通过客户端对象模型连接到SharePoint列表?

24

我需要编写一个应用程序来更新SharePoint 2010网站上的列表。

我找到了可以通过URL创建的“SPSite”,但我无法弄清楚如何指定要连接哪个用户。

该用户不是当前Windows用户,而且程序没有在服务器上执行。

我看到了提供“SPUserToken”的可能性,但在我的方法中,我只有用户、域和密码,那么如何生成此用户(并且我认为此用户在执行代码的系统上未知,但在服务器上已知)。

我在哪里可以指定它?

1个回答

45

由于您正在使用客户端对象模型,因此您将不会使用SPSite类(它是服务器对象模型的一部分)。

相反,您应该创建ClientContext类的实例,并通过其名为Credentials属性提供您的身份验证凭据。然后,您可以使用它来获取要更新的List对象:

using System.Net;
using Microsoft.SharePoint.Client;

using (ClientContext context = new ClientContext("http://yourserver/")) {
    context.Credentials = new NetworkCredential("user", "password", "domain");
    List list = context.Web.Lists.GetByTitle("Some List");
    context.ExecuteQuery();

    // Now update the list.
}

1
ClientContext 不是可处理的。 - Alex Zhukovskiy
3
@Alex,是的。它源自ClientRuntimeContext,该类实现了IDisposable接口。 - Frédéric Hamidi
1
如果您正在使用SharePoint在线,请检查以下内容以获取正确答案:https://sharepoint.stackexchange.com/questions/80961/the-remote-server-returned-an-error-403-forbidden/80964#80964 - gbdavid
1
我该如何以保密的方式提示最终用户提供用户名和密码?我不想在.cs文件中硬编码用户名和密码。 - userAZLogicApps
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接