1

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

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

代码是:

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();

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

4

2 回答 2

2

您将凭据添加到 clientContext:

System.Net.NetworkCredential cr = new System.Net.NetworkCredential("username", "password"); 

ClientContext clientContext = new ClientContext(siteURL);

clientContext.Credentials = cr;
于 2012-04-24T11:38:20.360 回答
0

你应该试试

System.Net.CredentialCache.DefaultCredentials 

获取当前用户的凭证

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

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

当然,用户必须已经登录

于 2012-04-25T05:00:23.467 回答