C# AcquireTokenSilent()抛出无法以静默方式获取令牌。调用方法AcquireToken错误
我有一个本机客户端应用程序,我正在尝试使用AcquireTokenSilent(),因此不会提示输入用户凭据。然而,在多次尝试之后,我对问题所在一无所知 我已经创建了自己的PrivateTokeCacheClass,它是从TokenCache类继承的 这是我的密码:C# AcquireTokenSilent()抛出无法以静默方式获取令牌。调用方法AcquireToken错误,c#,access-token,azure-active-directory,adal,C#,Access Token,Azure Active Directory,Adal,我有一个本机客户端应用程序,我正在尝试使用AcquireTokenSilent(),因此不会提示输入用户凭据。然而,在多次尝试之后,我对问题所在一无所知 我已经创建了自己的PrivateTokeCacheClass,它是从TokenCache类继承的 这是我的密码: public class PrivateTokenCacheClass : TokenCache { public string CacheFilePath = @"C:\Users\blahblah\De
public class PrivateTokenCacheClass : TokenCache
{
public string CacheFilePath = @"C:\Users\blahblah\Desktop\token.txt";
public AADTokenCache()
{
CacheFilePath = @"C:\Users\blahblah\Desktop\token.txt";
this.BeforeAccess = BeforeAccessNotification;
this.AfterAccess = AfterAccessNotification;
}
public void BeforeAccessNotification(TokenCacheNotificationArgs args)
{
this.Deserialize(File.ReadAllBytes(CacheFilePath));
}
public void AfterAccessNotification(TokenCacheNotificationArgs args)
{
if(this.HasStateChanged)
{
File.WriteAllBytes(CacheFilePath, this.Serialize());
this.HasStateChanged = false;
}
}
}
现在,在AcquireToken方法中,我执行以下操作:
private static string acquireAuthToken()
{
PrivateTokenCacheClass pvtCache = new PrivateTokenCacheClass();
AuthenticationContext authContext = new AuthenticationContext(authority, pvtCache);
string token = authContext.AcquireTokenSilent(resourceUri, clientID, UserIdentifier.AnyUser).AccessToken.ToString();
}
token.txt文件包含我以前(10分钟前)使用此调用获得的令牌(纯文本):
string token = authContext.AcquireToken(resourceUri, clientID, redirectUri).AccessToken.ToString();
任何帮助都将不胜感激 您应该能够枚举缓存(ReadAll方法),并将其内容与传递给AcquireTokenSilent的参数进行比较。如果存在轻微的不匹配,您将无法取回令牌