title: IdentityServer4 too many calls cause performance issue
body: <p>I am implementing a custom user store where my users provider lives in a separate service which I am reaching out using messaging.</p>
  
  <p>The thing is <code>GetProfileDataAsync</code> and <code>IsActiveAsync</code> are getting called too many times (about 3 times each) causing messaging process to be launched each time.</p>
  
  <p>Here is a simple implementation of IProfileService.</p>
  
  <pre><code>public class IdentityProfileService : IProfileService
  {
      private readonly UserManager&lt;ApplicationUser&gt; _userManager;
  
      public IdentityProfileService (UserManager&lt;ApplicationUser&gt; userManager)
      {
          _userManager = userManager;
      }
  
      public async Task GetProfileDataAsync(ProfileDataRequestContext context)
      {
  
          var user = await _userManager.FindBySubjectIdAsync(context.Subject.GetSubjectId());
          if (user != null)
          {
              context.IssuedClaims = user.Claims;
          }
      }
  
      public async Task IsActiveAsync(IsActiveContext context)
      {
          var sub = context.Subject.GetSubjectId();
          var user = await _userManager.FindByIdAsync(sub);
          context.IsActive = user != null;
      }
  }
  </code></pre>
  
  <p>My question is:</p>
  
  <p>Is there a way to minimize the number of these calls? or can I check for some info that's existence means that there is no need to call <code>_userManager.FindBySubjectIdAsync</code> again?</p>