public void FromAuthenticationTicket(HttpCookie cookie) { FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(cookie.Value); if (authTicket == null) { return; } var userGid = authTicket.UserData; var serializeModel = Cache.Get <SysUserModel>(userGid); if (serializeModel == null) { var user = UserRep.GetByGid(userGid).Result; if (user == null) { Cache.Remove(userGid); FormsAuthentication.SignOut(); return; } serializeModel = GetModel(user); Cache.Add(user.GId.ToString(), serializeModel, CacheTime); } var userPrincipal = new SysUser(serializeModel); HttpContext.Current.User = userPrincipal; Thread.CurrentPrincipal = userPrincipal; }
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); }