我尝试使用ClientContext(Microsoft.SharePoint.Client lib)连接到Sharepoint。
不幸的是,当我执行应该在Sharepoint网站上连接的代码时,我收到了401错误。
当我尝试使用网络浏览器进行连接时,它可以正常工作。
我的代码来了:
using (ClientContext clientcontext = new ClientContext("http://mysite/"))
{
var credentials = new NetworkCredential(user, password, domain);
clientcontext.Credentials = credentials;
Web web = clientcontext.Web;
clientcontext.Load(web);
clientcontext.ExecuteQuery();
}
谢谢!
答案 0 :(得分:1)
对不起,我很抱歉。
请参阅下面的工作代码。 如果您在线使用SharePoint,请使用以下代码
public static ClientContext GetClientContext(string url)
{
SecureString securePassword = new SecureString();
ClientContext context = null;
try
{
using (context = new ClientContext(url))
{
foreach (char c in "Password") securePassword.AppendChar(c);
context.Credentials = new SharePointOnlineCredentials("user@tenent.onmicrosoft.com", securePassword);
context.Load(context.Web, w => w.ServerRelativeUrl, w => w.Url);
context.ExecuteQuery();
}
}
catch (Exception ex)
{
}
return context;
}
如果您在本地服务器上使用SharePoint,则可以通过两种方式获取上下文。使用应用池帐户或传递您的用户信用。下面的代码使用默认的应用程序池凭据。
string parentSiteUrl = Helper.GetParentWebUrl(siteUrl);
clientContext = new ClientContext(parentSiteUrl);
clientContext.Credentials = CredentialCache.DefaultCredentials;
clientContext.Load(clientContext.Web, w => w.Url, w => w.Lists, w => w.ServerRelativeUrl, w => w.Title, w => w.SiteGroups);
clientContext.ExecuteQuery();
或者您可以通过以下凭据。
var clientContext = new ClientContext(siteUrl);
clientContext.Credentials = new NetworkCredential("domain\\user", "password");
clientContext.Load(clientContext.Web, w => w.Lists);
clientContext.ExecuteQuery();
如果您有任何疑问,请与我们联系。
答案 1 :(得分:0)
使用“Microsoft.SharePoint.Client.dll”和“Microsoft.SharePoint.Client.Runtime.dll”。
using (ClientContext clientcontext = new ClientContext("http://mysite/"))
{
var credentials = new NetworkCredential(domain\UserName, password);
clientcontext.Credentials = credentials;
Web web = clientcontext.Web;
clientcontext.Load(web);
clientcontext.ExecuteQuery();
}