SharePointonline CSOM 401 неавторизован с использованием предоставленного токена доступаC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 SharePointonline CSOM 401 неавторизован с использованием предоставленного токена доступа

Сообщение Anonymous »

Я строю функцию, которая автоматизирует поиск документов и других файлов SharePoint из веб -API, но мне трудно получить разрешение на выполнение даже базовых операций чтения. Я тестирую это в приложении .NET 6 Console с использованием пакета microsoft.sharepointonline.csom nuget. разрешение. Я взял ClientId, ClientSecret и TenantId, как сообщается в этом зарегистрированном приложении, и я использую их в моем приложении консоли. Я могу извлечь токен доступа без проблем и декодировать, что JWT показывает, что он поставляется с sites.read. Все разрешение. Но независимо от того, что я пытаюсь, clientContext.ExecuteQueryAsync () последовательно бросает исключение, жалуясь, что удаленный сервер ответил 401.
Вот код, который я тестирую Это с: < /p>

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

var clientId = "myClientId";
var clientSecret = "myClientSecret";
var tenantId = "myTenantId";
var authority = "https://login.microsoftonline.com/" + tenantId;
var siteUrl = "https://myorg.sharepoint.com";

var app = new ConfidentialClientApplicationBuilder
.Create()
.WithClientSecret(clientSecret)
.WithAuthority(authority)
.WithTenantId(tenantId)
.Build();

var paramBuilder = app.AcquireTokenForClient(new[] { siteUrl + "/.default" });
var authResult = await paramBuilder.ExecuteAsync();

// authResult has successfully retrieved an access token at this point

var context = new ClientContext(siteUrl);
context.ExecutingWebRequest += (_, e) =>
{
e.WebRequestExecutor.RequestHeaders["Authorization"] = "Bearer " + authResult.AccessToken;
}

context.Load(context.Web);

await context.ExecuteQueryAsync(); // 401 is thrown here

var title = context.Web.Title;
< /code>
Я пробовал несколько разных способов обойти это безрезультатно: < /p>
[list]
[*] Я пошел в центр администратора моего сайта SharePoint и предоставления приложения полные разрешения на полные разрешения, а также предоставить приложению эти разрешения в Azure Ad.  Похоже, что это ничего не изменило, я все еще получаю то же самое 401.  Я использовал новый идентификатор клиента и секрет клиента, которые были сгенерированы, и я смог вернуть токен доступа.  Не повезло, все еще получите 401 Calling ClientContext.exeCuteQueryAsync () 
[*] Я попытался изменить свой сайт на URL-адрес SharePoint, специфичный для сайта (например, https:// /myorg.sharepoint.com/sites/mysite), но как только я это сделаю, я больше не могу получить токен доступа. Вместо этого я получаю исключение MSAL, AADSTS500011, который гласит:
[/list]

»Принципал ресурса с именем https: // myorg. SharePoint.com/sites/mysite не был найден в названном арендаторе (мой арендатор). запрос на аутентификацию не тому арендатору. Затем, предоставляя URL-адрес для конкретного сайта ClientContext . Я пытался использовать URL-адрес V1, URL-адрес V2, без специфического URL-адреса, только адрес полномочий по умолчанию + идентификатор арендатора). >
Статья документации MS предлагает добавление дополнительного « /» к запрошенному. https://myorg.sharepoint.com/sites/mysite//.default). Похоже, что это ничего не изменило. Полем Я использую идентификатор ClientId, ClientSecret и арендатора, который копируется непосредственно со страницы приложения AAD. Код, который я использую выше, рекомендуется Microsoft для использования нового пакета SharePointonline.csom. Чего мне здесь не хватает?


Подробнее здесь: https://stackoverflow.com/questions/754 ... cess-token
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • С# Microsoft.SharepointOnline.CSOM ExecuteQueryAsync не работает
    Anonymous » » в форуме C#
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Azure Identity выдает ошибку 401 при использовании CSOM в Visual Studio
    Гость » » в форуме C#
    0 Ответы
    86 Просмотры
    Последнее сообщение Гость
  • 401 Неавторизован при проверке JWT в Symfony API
    Anonymous » » в форуме Php
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • 401 Неавторизован при проверке JWT в Symfony API
    Anonymous » » в форуме Php
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Удаленный сервер вернул ошибку: (401) Неавторизован при запросе данных RestApi.
    Anonymous » » в форуме C#
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous

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