由于未在缓存中找到令牌,因此无法以静默方式获取令牌。调用方法AcquireToken

时间:2017-03-16 09:29:38

标签: azure-active-directory adal

我使用此代码示例:https://github.com/Azure-Samples/active-directory-dotnet-graphapi-web,我知道此代码示例正在使用客户端库,但如果我想直接使用api调用查询(使用httpclient),我使用下面的代码来获取访问权限来自缓存的令牌:

 string userObjectID = ClaimsPrincipal.Current.FindFirst("http://schemas.microsoft.com/identity/claims/objectidentifier").Value; 
 AuthenticationContext authContext = new AuthenticationContext(Startup.Authority, new NaiveSessionCache(userObjectID)); 
 ClientCredential credential = new ClientCredential(clientId, appKey); 
 var result = await authContext.AcquireTokenSilentAsync(resource, credential, new UserIdentifier(userObjectID, UserIdentifierType.UniqueId));

但是我发现总是犯错误:无法在缓存中找不到令牌而无法获取令牌。调用方法AcquireToken

1 个答案:

答案 0 :(得分:2)

我可以重现你的错误。根据{{​​3}},似乎代码示例在使用AcquireTokenSilentAsync(使用NaiveSessionCache)时不起作用,请尝试将NaiveSessionCache.cs修改为this link

请告诉我是否有帮助。