不提供密码的SharePoint CSOM

时间:2019-02-18 15:27:26

标签: sharepoint httpclient sharepoint-2013

我想使用SharePoint客户端对象模型(CSOM),而不必提供服务帐户的密码。

我的客户端应用程序是.Net DLL(下面的示例C#代码),它是从IIS托管的网站中调用的。托管网站的应用程序池的标识对SharePoint文档库具有完全特权。

以下代码有效:

using (var ctx = new ClientContext($"{SpRoot}/{SpPathToFolder}"))
{
    ctx.Credentials = new NetworkCredential("username", "password", "domain");
    using (ms)
    {
        Microsoft.SharePoint.Client.File.SaveBinaryDirect(ctx, targetFileUrl, ms, true);
        ctx.ExecuteQuery();
    }

问题是,这意味着必须向源代码管理提交纯文本密码!

我尝试过:

Web site = ctx.Web;
ctx.Load(site);
ctx.ExecuteQuery();

我也尝试过ctx.Credentials = CredentialCache.DefaultNetworkCredentials 和ctx.Credentials = CredentialCache.DefaultCredentials

在同一DLL中,我可以使用以下代码进行一次Rest调用,以将文档添加到同一文档库中:

        var client = new HttpClient(handler);
        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Add("Accept", "application/xml;odata=nometadata");

        HttpResponseMessage response = client.PostAsync(restUrl, null).Result;

是否可以在不提供密码的情况下使用CSOM?

0 个答案:

没有答案