我想使用两个范围https://outlook.office.com/Mail.Read
和https://outlook.office.com/calendars.read
来阅读经过身份验证的用户'电子邮件和日历。我按照official .Net (WPF) tutorial对用户进行身份验证并获取令牌。只要我的范围只是上述范围之一,它就能很好地工作。只要我同时使用它们,当我尝试获取它时,我就不会收回令牌。
这基本上就是我做的事情:
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));
我做错了什么?
答案 0 :(得分:1)
尝试将Mail.Read
范围更改为全部小写:
private static string[] scopes = { "https://outlook.office.com/mail.read", "https://outlook.office.com/calendars.read" };
它看起来像是ADAL库中的一个错误。我提交了issue on GitHub。