public SessionData(User User, DateTime ExpirationDate)
 {
     this.ExpirationDate = ExpirationDate;
     UserId = User.UserIdentity.UserId;
     UserDisplayName = User.UserIdentity.DisplayName;
     Roles = User.UserIdentity.Roles;
 }
        public HttpCookie CreateAuthCookie(User User, bool KeepLoggedIn)
        {
            HttpCookie cookie = new HttpCookie(SettingsManager.AuthenticationSettings.CookieName);

            if (KeepLoggedIn)
            {
                cookie.Expires = DateTime.Now.AddDays(SettingsManager.AuthenticationSettings.DaysToExpiration);
            }

            cookie.Value = EncryptUser(User, KeepLoggedIn);

            return cookie;
        }
 public AuthenticationResult(AuthenticationStatus Status, User User)
 {
     this.Status = Status;
     this.User = User;
 }
        public HttpCookie CreateSessionCookie(User User)
        {
            if (string.IsNullOrWhiteSpace(SettingsManager.AuthenticationSettings.SessionCookieName) ||
                SettingsManager.AuthenticationSettings.SessionTimeOut <= 0)
            {
                return null;
            }
            HttpCookie cookie = new HttpCookie(SettingsManager.AuthenticationSettings.SessionCookieName);

            cookie.Expires = DateTime.Now.AddMinutes(SettingsManager.AuthenticationSettings.SessionTimeOut);
            cookie.Value = EncryptSessionData(new SessionData(User, cookie.Expires));

            return cookie;
        }
        protected string EncryptUser(User User, bool KeepLoggedIn)
        {
            SimpleAuthenticationTicket ticket = new SimpleAuthenticationTicket(User.Identity.Name, DateTime.Now,
                DateTime.Now.AddDays(SettingsManager.AuthenticationSettings.DaysToExpiration), KeepLoggedIn);

            return ticket.Encrypt();
        }
        public void SetCookies(HttpResponseBase Response, User User, bool KeepLoggedIn)
        {
            HttpCookie cookie = CreateAuthCookie(User, KeepLoggedIn);
            Response.SetCookie(cookie);

            cookie = CreateSessionCookie(User);
            if (cookie != null)
            {
                Response.SetCookie(cookie);
            }
        }