如果我从我们的服务调用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。因此,我不确定如何检索丢失的声明参数,因为我实际上无法从该流中读取。
答案 0 :(得分:0)
返回整个服务器JSON响应的修复程序在ADAL v3中进行。 Github链接: - https://github.com/AzureAD/azure-activedirectory-library-for-dotnet/issues/513 它尚未在ADAL v2中提供。