title: Where to create custom IPrincipal object?
body: <p>I am using Application_PostAuthenticateRequest event in global.asax to create custom IPrincipal object </p>
  
  <pre><code>void Application_PostAuthenticateRequest(object sender, EventArgs args)
  {
      if (Context.User.Identity.IsAuthenticated == true)
          if (Context.User.Identity.AuthenticationType == "Forms")
          {                 
                Context.User = new CustomPrincipal(Context.User);
                Thread.CurrentPrincipal = Context.User;
          }                
  }
  </code></pre>
  
  <p>to use in my application where I want get some more information about logged user. I thought it would be called one time when user authenticates but I noticed that it is called on every page request couple times for the same logged user. I found that even requesting image from AppThemes calls this method! </p>
  
  <p>Where should I create that object instead to avoid calling this method multiple times for each user?</p>