Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure active directory 无法以静默方式获取令牌,因为在缓存中找不到令牌。调用方法AcquireToken_Azure Active Directory_Adal - Fatal编程技术网

Azure active directory 无法以静默方式获取令牌,因为在缓存中找不到令牌。调用方法AcquireToken

Azure active directory 无法以静默方式获取令牌,因为在缓存中找不到令牌。调用方法AcquireToken,azure-active-directory,adal,Azure Active Directory,Adal,我使用此代码示例:,我知道此代码示例正在使用客户端库,但如果我想直接使用api调用执行查询(使用httpclient),我使用以下代码从缓存中获取访问令牌: string userObjectID = ClaimsPrincipal.Current.FindFirst("http://schemas.microsoft.com/identity/claims/objectidentifier").Value; AuthenticationContext authContext = new

我使用此代码示例:,我知道此代码示例正在使用客户端库,但如果我想直接使用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我可以重现您的错误。根据,在使用AcquireTokenSilentAsync(使用NaiveSessionCache)时,代码示例似乎不起作用,请尝试将NaiveSessionCache.cs修改为


请让我知道它是否有帮助。

您是否尝试注销并再次登录以测试此场景?只是好奇,为什么会出现这样的抛出错误,并且在用户已通过身份验证时未获得新令牌?我有一个与此代码示例相关的新问题,请参见此处:它不适用于我。