Я хочу использовать объектную модель на стороне клиента 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 без предоставления пароля?