Как выбрать кэшированные учетные данные с помощью клиента службы Microsoft Graph

#c# #microsoft-graph-api #msal

#c# #microsoft-graph-api #msal

Вопрос:

У меня есть клиентское приложение MSAL identity, которое я могу использовать для получения токена доступа для пользователя.

Теперь я пытаюсь использовать Microsoft.Graph.Auth вместо этого для отправки запросов. Приведенный ниже код показывает, как IndentityClientApp передается MSAL Graph.Auth .

 DeviceCodeProvider authProvider = new DeviceCodeProvider(IdentityClientApp, Scopes);
GraphServiceClient graphClient = new GraphServiceClient(authProvider);
 

Я не могу понять, как указать, какие кэшированные учетные данные использовать, если кэшировано более одной учетной записи.

Когда я использовал MSAL сам по себе, я использовал приведенный ниже код для указания учетной записи пользователя. Как мне это сделать с MS.Graph?

authResult = await IdentityClientApp.AcquireTokenSilent(Scopes, account).ExecuteAsync();

Ответ №1:

Использование этого подхода для создания GraphClient позволяет мне управлять используемой учетной записью:

 GraphServiceClient graphClient = new GraphServiceClient(MSGraphURL, new DelegateAuthenticationProvider(async (requestMessage) =>
{
    requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", OutlookToken);
}));
 

Источник