protected void Application_AuthenticateRequest()
        {
            IPrincipal user = HttpContext.Current.User;
            IAccountRepository accountRepository = new AccountRepository();
            if (user != null && user.Identity.IsAuthenticated && user.Identity.AuthenticationType.Equals("Forms"))
            {
                var formsIdentity = user.Identity as FormsIdentity;
                if (formsIdentity != null)
                {
                    var customIdentity = new CustomIdentity(formsIdentity.Ticket);
                    var customPrincipal = new CustomPrincipal(customIdentity, accountRepository);

                    HttpContext.Current.User = customPrincipal;
                    Thread.CurrentPrincipal = customPrincipal;
                }
            }
        }
 public CustomPrincipal(CustomIdentity identity, IAccountRepository accountRepository)
     : this()
 {
     _identity = identity;
     _accountRepository = accountRepository;
 }