1

Я хочу использовать две области https://outlook.office.com/Mail.Read и https://outlook.office.com/calendars.read для чтения электронной почты и календаря с проверкой подлинности. Я последовал за official .Net (WPF) tutorial, чтобы проверить подлинность пользователя и получить токен. Он работает хорошо, пока мой охват - только один из приведенных выше. Как только я использую оба, я не возвращаю токен, когда пытаюсь его получить.Использовать несколько областей с помощью API Office 365

Это в основном то, что я делаю:

private static string[] scopes = { "https://outlook.office.com/Mail.Read", "https://outlook.office.com/calendars.read" }; 

// sign-in/authenticate logic (with PromptBehavior.Always/Never) from tutorial 

// here, the result doesn't contain a token: 
result = await authContext.AcquireTokenAsync(scopes, null, clientId, redirectUri, new PlatformParameters(PromptBehavior.Always, null)); 

Что я делаю неправильно?

ответ

1

Попробуйте изменить Mail.Read возможности для всех строчных:

private static string[] scopes = { "https://outlook.office.com/mail.read", "https://outlook.office.com/calendars.read" }; 

Это похоже на ошибку в библиотеке ADAL. Я подал issue on GitHub.

+0

Большое спасибо за этот комментарий. Это устранило мою проблему. Я также пробовал это с помощью строчных букв один раз, но, скорее всего, у меня было что-то еще, что вызвало еще одну проблему ... Кстати, в справочной информации Outlook REST API все области написаны с верхним регистром (и с http вместо https) ... – casaout