Ejemplo n.º 1
0
        public void LogOut(IPrincipal user)
        {
            var cookieName = GetCookieName();

            CookieUtils.RemoveCookie(cookieName);
            var sysUser = user as ISysUser;

            if (user != null)
            {
                UserRep.RemoveUserCache(sysUser.UserModel.GId);
            }
            FormsAuthentication.SignOut();
        }
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);
        }