Ejemplo n.º 1
0
        public void CreateAuthenticationTicket(Users user, HttpResponseBase response, HttpContextBase httpContextBase, bool remember)
        {
            var serializeModel = GetModel(user);
            var userGroup      = user.UserGroup;

            UserRep.AddUserCache(serializeModel);
            var    expiration = remember ? DateTime.Now.AddYears(1) : DateTime.Now.AddMinutes(FormsAuthentication.Timeout.TotalMinutes);
            string userData   = $"{user.GId}|{UserRep.GetIP()}|{userGroup}";
            var    authTicket = new FormsAuthenticationTicket(
                1, user.GId.ToString(), DateTime.Now, expiration, remember, userData);
            string encTicket = FormsAuthentication.Encrypt(authTicket);

            CookieUtils.AddCookie(GetCookieName(), encTicket, expiration);
            setPrinciple(serializeModel, userGroup);
        }
Ejemplo n.º 2
0
        public void FromAuthenticationTicket(HttpCookie cookie)
        {
            FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(cookie.Value);

            if (authTicket == null)
            {
                return;
            }
            var userData    = authTicket.UserData;
            var userDataArr = userData.Split('|');

            if (userDataArr.Length != 3 ||
                UserRep.GetIP() != userDataArr[1])
            {
                FormsAuthentication.SignOut();
                return;
            }
            if (FormsAuthentication.SlidingExpiration)
            {
                var expiration = DateTime.Now.AddMinutes(FormsAuthentication.Timeout.TotalMinutes);
                cookie.Expires  = expiration;
                cookie.HttpOnly = true;
                HttpContext.Current.Response.Cookies.Set(cookie);
            }
            var           userGid        = userDataArr[0];
            var           userGroup      = (UserGroup)Enum.Parse(typeof(UserGroup), userDataArr[2]);
            ISysUserModel serializeModel = UserRep.GetByCache(userGid);

            if (serializeModel == null)
            {
                var user = UserRep.GetByGid(userGid);
                if (user == null)
                {
                    UserRep.RemoveUserCache(userGid);
                    FormsAuthentication.SignOut();
                    return;
                }
                serializeModel = GetModel(user);
                UserRep.AddUserCache(serializeModel);
            }

            setPrinciple(serializeModel, userGroup);
        }