title: Is there any way to acquire token silently using MSAL.net, when the refresh token and user account details are not cached in token cache
body: <p>By default, MSAL.net caches refresh tokens and user details in memory cache. MSAL.net also supports distributed caching like redis/sql db etc. However, be it memory cache or distributed cache, due to any technical issue, if caching fails is there any way to acquire token silently for different scope or renew the existing valid token which is about to expire. </p>
  
  <p>For eg: user logins and gets a access token which is valid for 60 mins, but the system fails to cache the refresh token and other user details. Now, if user wants to acquire a new token for different scope or to get a new access token silently before the original token expires, MSAL.net uses</p>
  
  <p><code>application.GetAccountAsync(accountIdentifier)</code> to get the logged in user account from cache and  </p>
  
  <pre><code>application.AcquireTokenSilent(scopes, account).WithForceRefresh(forceRefresh) 
  </code></pre>
  
  <p>to make a request to AD to get the new token if forceRefresh = true.</p>
  
  <p>Since there is nothing stored in cache currently this method returns null. In this scenario, Is there any way to make call directly to AD and get the token. </p>
  
  <p>Since MSAL.net doesn't expose refresh tokens and no property or method to get refresh token when using MSAL.net am stuck here. I need a way to acquire token/renew token directly from AD in this scenario.</p>