我们正在使用ADAL V2.29.0来尝试完成滚动的AccessToken。 IE的AccessToken将在4天后到期,但RefreshToken将在7天后到期。每次登录时,您的RefreshToken都会获得一个新的AccessToken(因此从您上次登录后的4天到期)
我们正在使用AcquireTokenByRefreshTokenAsycn(),我们正在返回一个新的更新的AccessToken。但是,TokenCache没有更新,也没有将新令牌写入tokenPath。
我们如何将TokenCache dictionaryItem设置为AquireTokenByRefreshTokenAsync的结果?
AuthenticationContext ac = new AuthenticationContext( strAuthority, false, tokenFileCache );
//Authenticate using a refresh token and get new Access Token
var refreshTokenString = File.ReadAllText( Path.Combine( appDataPath, refreshToken ) );
ar = await ac.AcquireTokenByRefreshTokenAsync( refreshTokenString, strClientIdentifier );
答案是ADAL中的AquireTokenByRefreshToken调用旨在不访问TokenCache。引擎盖下的TokenCache是ConcurrentDictionary,它是TokenCache的私有成员,无法从外部ADAL框架访问。祝每个人都这样做好运。我认为这比我找到的搜索更常见