我可以在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();
问题可能是客户端上下文不使用当前用户凭据。我该怎么办?
答案 0 :(得分:2)
您将凭据添加到clientContext:
System.Net.NetworkCredential cr = new System.Net.NetworkCredential("username", "password");
ClientContext clientContext = new ClientContext(siteURL);
clientContext.Credentials = cr;
答案 1 :(得分:0)
你应该试试
System.Net.CredentialCache.DefaultCredentials
获取当前用户的凭据
但是,如果您正在呼叫远程共享点服务器,我担心它不会起作用,因为double hop problem
当CURRENT USER使用ECMA客户端对象模型时调用远程共享点的方式...
当然,用户必须全部使用