title: Empty MSAL token cache
body: <p>I have the following simple .NET script:</p>
  <pre><code>static void Main(string[] args)
  {
      var result1 = Login().Result;
      var result2 = Login().Result;
  }
  
  public static async Task&lt;AuthenticationResult&gt; Login()
  {
      var options = new PublicClientApplicationOptions();
      options.TenantId = &quot;...&quot;;
      options.ClientId = &quot;...&quot;;
  
      var app = PublicClientApplicationBuilder.CreateWithApplicationOptions(options)
                      .WithDefaultRedirectUri()
                      .Build();
  
      AuthenticationResult result;
      var accounts = await app.GetAccountsAsync();
      IAccount account = accounts.FirstOrDefault();
      var scopes = new string[] { &quot;...&quot; };
      try
      {
          result = await app.AcquireTokenSilent(scopes, account).ExecuteAsync();
      }
      catch (MsalUiRequiredException)
      {
          result = await app.AcquireTokenInteractive(scopes).ExecuteAsync();
      }
      return result;
  }
  </code></pre>
  <p>My expectation would be that the first Login(...) call executes the interactive authentication, then the second call var accounts = await app.GetAccountsAsync() returns the previously logged in account. However, the accounts does not have any item. So, it seems that the token cache is not part of these calls.</p>
  <p>Is there any way to store the logged in account in the first call? Should not be the automatic?</p>