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(); }
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); }