<PackageReference Include="Microsoft.Identity.Client" Version="4.83.1" />

Microsoft.Identity.Client.Cache.CacheSessionManager

MSAL should only interact with the cache though this object. It is responsible for firing cache notifications. Flows should only perform (at most) 2 cache accesses: one to read data and one to write tokens. Reading data multiple times (e.g. read all ATs, read all RTs) should not refresh the cache from disk because of performance impact. Write operations are still the responsibility of TokenCache.
namespace Microsoft.Identity.Client.Cache { internal class CacheSessionManager : ICacheSessionManager { public RequestContext RequestContext { get; } public ITokenCacheInternal TokenCacheInternal { get; } public CacheSessionManager(ITokenCacheInternal tokenCacheInternal, AuthenticationRequestParameters requestParams); public Task<MsalAccessTokenCacheItem> FindAccessTokenAsync(); public Task<Tuple<MsalAccessTokenCacheItem, MsalIdTokenCacheItem, Account>> SaveTokenResponseAsync(MsalTokenResponse tokenResponse); public Task<Account> GetAccountAssociatedWithAccessTokenAsync(MsalAccessTokenCacheItem msalAccessTokenCacheItem); public Task<MsalIdTokenCacheItem> GetIdTokenCacheItemAsync(MsalAccessTokenCacheItem accessTokenCacheItem); public Task<MsalRefreshTokenCacheItem> FindFamilyRefreshTokenAsync(string familyId); public Task<MsalRefreshTokenCacheItem> FindRefreshTokenAsync(); public Task<bool?> IsAppFociMemberAsync(string familyId); public Task<IEnumerable<IAccount>> GetAccountsAsync(); } }