1

我想使用这两个范围https://outlook.office.com/Mail.Readhttps://outlook.office.com/calendars.read阅读经过身份验证的用户的电子邮件和日历。我按照官方 .Net (WPF) 教程对用户进行身份验证并获取令牌。只要我的范围只是上述范围之一,它就可以很好地工作。一旦我同时使用两者,当我尝试获取它时,我就不会取回它。

这基本上就是我所做的:

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

我究竟做错了什么?

4

1 回答 1

1

尝试将您的Mail.Read范围更改为全部小写:

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

它看起来像是 ADAL 库中的一个错误。我在 GitHub 上提交了一个问题

于 2015-12-09T15:41:33.780 回答