Я создаю приложение, которое позволит пользователям сканировать документы на принтере и загружать документ прямо в Sharepoint. Я настроил приложение в Azure и использую учетные данные администратора, и я предоставил доступ к приложению, чтобы разрешить его чтение и запись в Sharepoint.
Проблема, с которой я сталкиваюсь, заключается в том, что когда я запрашиваю список сайтов в Sharepoint через MS Graph API, я получаю список всех сайтов в корне, и мне было интересно, есть ли способ, которым я могу отфильтровать это перечислить только те, которые доступны конкретному пользователю?
Я могу получить токен доступа со следующим кодом:
var cca = new ConfidentialClientApplication(appId, string.Format("https://login.microsoftonline.com/{0}/v2.0", tenantId), redirectUri, new ClientCredential(appSecret), null, appTokenCache.GetMsalCacheInstance());
var authResult = await cca.AcquireTokenForClientAsync(new[] { "https://graph.microsoft.com/.default" });
return authResult.AccessToken;
Этот код работает нормально, и я могу использовать этот токен доступа для создания клиента для доступа к графику. Затем я использую следующий код для получения сайтов:
var sites = await graphClient.Sites["Root"].Sites.Request().GetAsync();
Эта строка также работает и возвращает подсайты в Root. Но он возвращает все сайты, поэтому мне нужно каким-то образом отфильтровать этот список, чтобы он возвращал их только тем пользователям, которые используют приложение.