ADAL AcquireTokenByRefreshTokenAsync не обновляет TokenCache - PullRequest
0 голосов
/ 02 июля 2018

Мы используем ADAL V2.29.0, чтобы попробовать свернуть AccessToken. То есть срок действия 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 );

1 Ответ

0 голосов
/ 10 июля 2018

Ответом является вызов AquireTokenByRefreshToken в ADAL, предназначенный для доступа к TokenCache. Внутренний TokenCache - это ConcurrentDictionary, который является частным членом TokenCache и недоступен извне платформы ADAL. Удачи всем, кто пытается это сделать. Я думаю, что это будет более распространенным, чем то, что я нашел в поиске

...