【问题标题】:Upload file to SharePoint using Client Object Model - 401 unauthorized使用客户端对象模型将文件上传到 SharePoint - 401 未经授权
【发布时间】:2016-06-03 10:22:03
【问题描述】:

我正在处理一个 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,它在网站和网站集级别都具有完全的管理员访问权限。但是当我尝试使用此帐户 B 执行上述代码时,我仍然收到错误“远程服务器返回错误:401 未授权”。是否需要任何其他权限才能使用客户端对象建立与 SharePoint 库/站点的连接型号?

【问题讨论】:

    标签: c# sharepoint ssis sharepoint-clientobject


    【解决方案1】:

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

    //ctx.Credentials = CredentialCache.DefaultCredentials;
    

    此声明

    ctx.Credentials = CredentialCache.DefaultCredentials;
    

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

    【讨论】:

    • 即使我这样做,也是同样的行为。该账号无法连接服务器。
    • 其实跟账号本身有关系。我用另外几个帐户运行了相同的测试,效果非常好。
    • 嘿巴拉,我有同样的问题,你有解决方案吗?我有在一个域中工作的代码。我在不同的域中使用相同的代码并使用不同的用户,他们可以看到文件,但是当他们尝试保存新文件夹之类的内容时会得到 401。
    猜你喜欢
    • 1970-01-01
    • 2018-07-07
    • 2012-04-08
    • 2021-01-07
    • 2022-11-11
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多