AcquireTokenAsync没有响应" user_impersonation"令牌

时间:2017-03-17 08:39:39

标签: asp.net-web-api azure-web-sites adal

我有一个基于网站的网络应用程序,通过AAD登录对用户进行身份验证。成功登录会使用访问令牌将用户重定向回应用程序(此部分全部使用adal_angular.js / adal.js完成)

然后将令牌传递给基于站点的api,根据此示例(https://github.com/Azure-Samples/active-directory-dotnet-webapi-onbehalfof)代表用户获取新令牌以调用下游api。到目前为止一直很好。

下游api重复此过程以获取另一个令牌以进一步向下游调用另一个api。这就是问题所在。

在这里调用AcquireTokenAsync()时,我没有得到任何响应。 *编辑:没有响应意味着我没有得到Azure AAD的响应,使用Fiddler跟踪HTTP流量,我没有看到任何网址被作为AcquireTokenAsync呼叫的一部分被点击*

我注意到我此时使用的令牌现在是" user_impersonation"令牌,其中基于站点的api收到的令牌不是。这有意义吗?

是否应支持此架构?

1 个答案:

答案 0 :(得分:0)

好的,这里的问题是我自己在webapi中使用异步方法。如果要在webapi中调用异步方法,则需要将自己的Web api方法标记为异步。如果ASP.Net不知道你想在控制器中调用异步方法,它可能会导致死锁。 (这里有一个很好的解释:http://blog.stephencleary.com/2012/07/dont-block-o ...... 你永远不应该在web api中的异步方法上使用.Result。