Код CSOM для подключения к SharePoint Online через приложение Azure Active Directory выдает ошибку 401C#

Место общения программистов C#
Ответить
Anonymous
 Код CSOM для подключения к SharePoint Online через приложение Azure Active Directory выдает ошибку 401

Сообщение Anonymous »

Я пытаюсь использовать CSOM для загрузки файлов в SharePoint Online. Я создал приложение на портале AzureAD/Entra ID и имею следующие данные.
  • ClientId или ApplicationId
  • TenantId
  • Секретное значение
Приложение имеет следующие разрешения:
  • Sites.FullControl.All
  • Sites.ReadWrite.All
  • Sites.Selected
Это мой код, и с его помощью я могу без проблем получить токен Bearer, но при выполнении _ClientContext.ExecuteQueryAsync() выдает ошибку 401.

System.Net.WebException: удаленный сервер возвратил ошибку: (401) Неавторизованный.

Получите токен и установите веб-запрос Заголовок

Код: Выделить всё

var app = ConfidentialClientApplicationBuilder.Create(_authData.ApplicationId)
.WithTenantId(_authData.TenantId)
.WithClientSecret(_authData.Password)
.Build();

var scope = new string[] { $"{_siteUrl.Scheme}://{_siteUrl.Host}/.default" };

var result = await app.AcquireTokenForClient(scope).ExecuteAsync();
_authData.AccessToken = result.AccessToken;

_clientContext.ExecutingWebRequest += (s, e) =>
{
e.WebRequestExecutor.RequestHeaders["Authorization"] = $"Bearer {_authData.AccessToken}";
};
Загрузить контекст

Код: Выделить всё

_clientContext = new ClientContext(_siteUrl);
//Here is called the GetToken Method and set it to context requests
var documentFolder = _clientContext.Web.Lists.GetByTitle("Documents");
documentFolder.EnableFolderCreation = true;
_clientContext.RequestTimeout = RequestTimeout;
_clientContext.Load(documentFolder);
_clientContext.Load(documentFolder.RootFolder);
await _clientContext.ExecuteQueryAsync();
Странно то, что я попробовал сценарий PowerShell для загрузки файлов с помощью Graph и, похоже, работает, но с CSOM он не работает. Я не понимаю, что происходит.


Подробнее здесь: https://stackoverflow.com/questions/797 ... app-throws
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»