我正在处理一个SSIS脚本任务,该任务将文件上传到SharePoint站点并将项目级别权限应用于该文件。我使用Windows帐户与SharePoint库建立连接,如下所示。
using (ClientContext ctx = new ClientContext("http://server"))
{
ctx.Credentials = new NetworkCredential("username", "password", "domain");
//ctx.Credentials = CredentialCache.DefaultCredentials;
Web currentWeb = ctx.Web;
ctx.Load(currentWeb);
ctx.ExecuteQuery();
using (FileStream fs = new FileStream(@"filepath", FileMode.Open))
{
Microsoft.SharePoint.Client.File.SaveBinaryDirect(ctx, "site path to save", fs, true);
}
}
该帐户具有SharePoint网站的管理员权限,因此它可以完美地连接到该网站,并且文件上传时没有任何问题。现在有另一个帐户,我们称之为帐户B,它在站点和网站集级别都具有完全的管理员访问权限。但是我仍然收到错误'远程服务器返回错误:401 Unauthorized'当我尝试使用此帐户执行上述代码时B.是否还有使用客户端对象模型建立与SharePoint库/站点的连接所需的其他权限?
答案 0 :(得分:1)
我认为您需要取消注释以下注释行。
//ctx.Credentials = CredentialCache.DefaultCredentials;
本声明
ctx.Credentials = CredentialCache.DefaultCredentials;
将凭据的安全上下文(您在上一行中设置)传递给您尝试与之交互的网站。