/// <summary> /// 设置客户端口验证票据 /// </summary> /// <param name="userModel"></param> /// <param name="createPersistentCookie"></param> /// <param name="strCookiePath"></param> public static void SetAuthCookie(UserModel userModel, bool createPersistentCookie, string strCookiePath = "/") { string userName = userModel.UserName; // 获得Cookie HttpCookie authCookie = FormsAuthentication.GetAuthCookie(userName, createPersistentCookie, strCookiePath); //authCookie.Name = "SopAuthCookie_" + accountName; string userData = userModel.SerializeToString(); // 根据之前的ticket凭据创建新ticket凭据,然后加入自定义信息 var newTicket = new FormsAuthenticationTicket(2, userModel.UserName, DateTime.Now, DateTime.Now.AddDays(CookieExpires), createPersistentCookie, userData, strCookiePath); // 将新的Ticke转变为Cookie值,然后添加到Cookies集合中 authCookie.Value = FormsAuthentication.Encrypt(newTicket); if (HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName] == null) { HttpContext.Current.Response.Cookies.Add(authCookie); } else { HttpContext.Current.Response.Cookies.Set(authCookie); } }