Web 部件中的 SharePoint 客户端对象模型抛出 401 Unauthorized

SharePoint client object model in a web part thrown 401 Unauthorized

我可以在 Web 部件中使用 SharePoint 客户端对象模型吗?

此代码适用于我的控制台应用程序,但在 Web 部件中它返回"远程服务器返回错误:(401) 未经授权。"

代码为:

1
2
3
4
5
6
7
8
var siteUrl ="http://www.server.com/";
var clientContext = new ClientContext(siteUrl);

var root = clientContext.Site.RootWeb;
WebCollection collWeb = root.GetSubwebsForCurrentUser(null);
clientContext.Load(root);
clientContext.Load(collWeb);
clientContext.ExecuteQuery();

问题可能在于客户端上下文不使用当前用户凭据。我该怎么办?


您将凭据添加到 clientContext:

1
2
3
4
5
System.Net.NetworkCredential cr = new System.Net.NetworkCredential("username","password");

ClientContext clientContext = new ClientContext(siteURL);

clientContext.Credentials = cr;


你应该试试

1
System.Net.CredentialCache.DefaultCredentials

获取当前用户的凭证

但是,如果您正在调用远程共享点服务器,恐怕它不会工作,因为双跳问题

以当前用户身份调用远程共享点的方法是使用 ECMA 客户端对象模型...

当然,用户必须已经登录