title: HttpContext.User.Identity.Name is Blank inside [Authorize]
body: <p>I am redirecting my users to this ActionResult when they click login and are authenticated.  It brings them to this method:</p>
  
  <pre><code>[Authorize]
  private ActionResult RouteRegistrationStep()
  {
      Debug.Print(HttpContext.User.Identity.IsAuthenticated.ToString()); // false
      Debug.Print(HttpContext.User.Identity.Name); // blank
      return RedirectToAction("ContactInfo", "Adjuster");
  }
  </code></pre>
  
  <p>How is <code>HttpContext.User.Identity.IsAuthenticated.ToString()</code> false?  And, if it is false, why did the <code>[Authorize]</code> attribute let it in the method to begin with?</p>
  
  <p><strong>Edit:</strong></p>
  
  <p>This is the login method which redirects them to <code>RouteRegistrationStep()</code>:</p>
  
  <pre><code>[HttpPost]
  [AllowAnonymous]
  [ValidateAntiForgeryToken]
  public ActionResult Login(LoginModel model, string returnUrl)
  {
      if (ModelState.IsValid &amp;&amp; db.Users.Where(x =&gt; x.username == model.username 
          &amp;&amp; x.password == EncryptPassword(model.password)).Count() &gt; 0)
      {
          FormsAuthentication.SetAuthCookie(model.username, model.RememberMe);
          return RedirectToLocal(returnUrl);
      }
  
      // If we got this far, something failed, redisplay form
      ModelState.AddModelError("", "The user name or password provided is incorrect.");
      return View(model);
  }
  
  [Authorize]
  private ActionResult RedirectToLocal(string returnUrl)
  {
      if (Url.IsLocalUrl(returnUrl))
      {
          return Redirect(returnUrl);
      }
      else
      {
          return RouteRegistrationStep();
      }
  }
  </code></pre>