使用客户端对象模型将文件上载到SharePoint - 未经授权的401

时间:2016-06-03 10:22:03

标签: c# sharepoint ssis client-object-model

我正在处理一个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库/站点的连接所需的其他权限?

1 个答案:

答案 0 :(得分:1)

我认为您需要取消注释以下注释行。

//ctx.Credentials = CredentialCache.DefaultCredentials;

本声明

ctx.Credentials = CredentialCache.DefaultCredentials;

将凭据的安全上下文(您在上一行中设置)传递给您尝试与之交互的网站。