ADAL的哪个版本应该或计划支持UWP样式的应用程序?
目前的稳定版本(2.18.206251556)给了我例外:
System.ExecutionEngineException未处理HResult = -2146233082
Message ='System.ExecutionEngineException'类型的异常 抛出。的InnerException:
当我尝试使用以下代码获取令牌时:
public async Task<string> GetOAuthTokenFromAAD()
{
var authenticationContext = new AuthenticationContext(String.Format("{0}/{1}", ADALServiceURL, TenantDomain));
var result = await authenticationContext.AcquireTokenAsync(string.Format("{0}/", ARMBillingServiceURL), ClientId, new Uri(ADALRedirectURL));
if (result == null)
{
throw new InvalidOperationException("Failed to obtain the JWT token");
}
return result.AccessToken;
}
最新版本3.4.206191646-alpha给了我错误:
严重级代码描述项目文件行错误CS1503参数3: 无法从'System.Uri'转换为 'Microsoft.IdentityModel.Clients.ActiveDirectory.UserCredential'CloudScheduler
如果已正确理解,则不应将UserCredential参数作为参数使用,而应使用URI类型。
答案 0 :(得分:3)
好的,所以我设法让这个样本Todolist应用程序工作。 AcquireTokenAsync的重载现在需要传入一个新的PlatformParameters选项。一旦你添加了你的好处。
var p = new PlatformParameters(PromptBehavior.Always, false);
AuthenticationResult result = await authContext.AcquireTokenAsync(todoListResourceId, clientId, redirectURI, p);
答案 1 :(得分:0)
ADAL 2.18应与通用应用程序配合使用。您使用的是Win10 / VS2015 / Win10工具版本?此外,您是否可以按照https://github.com/AzureAD/azure-activedirectory-library-for-dotnet/blob/master/README.md中的说明捕获日志并在此处发布? 大约3.x - 那还是一个阿尔法。有关如何使用其API的信息,请参阅https://github.com/AzureADSamples/NativeClient-MultiTarget-DotNet - 但是您不应该使用3.x - 2.18。