ADAL AcquireTokenByRefreshTokenAsync不更新TokenCache

问题描述 投票:1回答:1

我们正在使用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 );
c# adal
1个回答
0
投票

答案是ADAL中的AquireTokenByRefreshToken调用旨在不访问TokenCache。引擎盖下的TokenCache是​​ConcurrentDictionary,它是TokenCache的私有成员,无法从外部ADAL框架访问。祝每个人都这样做好运。我认为这比我找到的搜索更常见

© www.soinside.com 2019 - 2024. All rights reserved.