title: Why does my log in info is missing after my RedirectToAction call?
body: <p>In my asp.net MVC 4.6 application, after I logged in the site, I need to call <code>RedirectToAction</code> to call another controller, but the current log in data is lost before reaching another controller. However, the data is not lost if I run it in Anonymous authentication is enabled. But I can not make the Anonymous Authentication enabled. 
  Here is the log on method in my AccountController class:</p>
  
  <pre><code>[AcceptVerbs(HttpVerbs.Post)]
  public ActionResult LogOn(string userName, string password, string returnUrl)
  {
      if (ValidateLogOn(userName, password) == false)
      {
           return View();
      }
      FormsAuthenticationService.SignIn(userName, false);
      IVtrsUser currentUser = MembershipService.Get(userName);
      if (currentUser.IsPasswordExpired)
      {
          return RedirectToAction("ChangePassword");
      }
      else if (string.IsNullOrEmpty(returnUrl) == false)
      {
          return Redirect(returnUrl);
      }
      else
      {
           return RedirectToAction("Index", "Calendar");
      }
  }
  </code></pre>
  
  <p>From the debug, I can see the two services have set the current user properly:</p>
  
  <pre><code>FormsAuthenticationService.SignIn(userName, false);
  IVtrsUser currentUser = MembershipService.Get(userName);
  </code></pre>
  
  <p>But after the code excuated to the CalendarController as below:</p>
  
  <pre><code>[Authorize(Roles = "Admin")]
  public class CalendarController : Controller
  { ...
  </code></pre>
  
  <p>The user signed in data such as Role = "Admin" is lost, which causes the following code in <code>CalendarController</code> is wrong, and is not execute the <code>Index()</code> method of <code>CalendarController</code>, Can anybody help me why this user login data is lost in Anonymous Authentication is Disabled mode? and the user data is remaining when Anonymous Authentication is enabled mode?
  Add more , there is related codes:</p>
  
  <pre><code>public IFormsAuthenticationService FormsAuthenticationService { get; private set; }
  </code></pre>
  
  <p>and this is <code>IFormsAuthenticationService</code>:</p>
  
  <pre><code>namespace VTRS.WebApp.Controllers.Common
  {
      public interface IFormsAuthenticationService
      {
          void SignIn(string userName, bool createPersistentCookie);
          void SignOut();
      }
  }
  </code></pre>