title: Why is SignInAsync asynchronous?
body: <p>In the new Identity template code, the controller code that signs in a user is wrapped in an <code>async</code> block:</p>
  
  <pre><code>private async Task SignInAsync(ApplicationUser user, bool isPersistent)
  {
      AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
      AuthenticationManager.SignIn(new AuthenticationProperties() 
                                     { IsPersistent = isPersistent }, 
                                      await user.GenerateUserIdentityAsync(UserManager));
  }
  </code></pre>
  
  <p>But all of the calls to SignInAsync simply <code>await</code> the task completion.  So what's the point of the additional overhead and complexity of making the sign-in code asynchronous?  Or is that a mystery left to the minds of the folks who created the template who may have envisioned some sort of asynchronous sign-in scenario?</p>
  
  <p>EDIT: Ok, there seems to be a bit of confusion as to what I'm asking.  Let's try this:</p>
  
  <p>Why create an asynchronous SignInAsync function when all of the calls to the function are effectively synchronous:</p>
  
  <pre><code>await SignInAsync()
  </code></pre>
  
  <p>The async function would make sense if the caller did some other work before <code>await</code>ing, but that's not the case...</p>