#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);
}));