Azure ADAL(版本2.14)AcquireToken错误

时间:2015-03-01 20:29:01

标签: azure com hresult adal

我可以使用

行在本地工作时验证用户身份
AuthenticationResult result = context.AcquireToken(resource,clientID, returnURI, PromptBehavior.Always);

在本地,我获得了登录屏幕和UserInfo。

当我将Web应用程序发布到Azure时,上面的代码失败并出现此错误

"Error HRESULT E_FAIL has been returned from a call to a COM component"

[COMException (0x80004005): Error HRESULT E_FAIL has been returned from a call to a COM component.]

Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext.RunAsyncTask(Task`1 task) +89

是什么原因引起的?我正在发布到共享站点(例如xxx.azurewebsites.net) - 所以除了使用门户之外,我无法访问服务器机器进行任何更改。

代码在本地按预期工作。

此外,javascript版本(ADAL.js)使用相同的租户,clientID和returnURI

1 个答案:

答案 0 :(得分:0)

您正在执行的令牌获取流程应在桌面应用程序上运行,而不是在Web应用程序上运行。桌面上显示的对话框由您的本地进程和本地Windows会话的存在驱动。它不能在一个Web应用程序中工作,因为没有Windows会话,并且该进程正在服务器计算机上的其他位置运行。 请参阅我们的示例以了解如何从Web应用程序获取令牌,https://github.com/AzureADsamples中带有“openid”或“oauth”的任何内容都可以使用。