如何从AdalException中检索JSON响应?

时间:2016-11-18 19:49:43

标签: adal

如果我从我们的服务调用AuthenticationContext.AcquireToken,它会在某种情况下抛出AdalException,因为我发送的令牌缺少必需的声明。我调用AcquireToken时的响应包含JSON,其中包含缺少的声明。我希望能够获得该JSON(特别是缺少的声明信息),因此我可以尝试使用该遗漏声明重新授权用户。

一旦我从调用AcquireToken中捕获到AdalException,我怎样才能获得JSON响应以找出丢失的声明?如果我尝试从AdalException上的innerException获取响应流:

catch (AdalException ex)
{
    WebException webex = (WebException)ex.InnerException;
    WebResponse response = webex.Response;
    Stream responseStream = response.GetResponseStream();
    ...

...然后我得到的responseStream将CanRead,CanSeek和CanWrite属性都设置为false。因此,我不确定如何检索丢失的声明参数,因为我实际上无法从该流中读取。

1 个答案:

答案 0 :(得分:0)

返回整个服务器JSON响应的修复程序在ADAL v3中进行。 Github链接: - https://github.com/AzureAD/azure-activedirectory-library-for-dotnet/issues/513 它尚未在ADAL v2中提供。