/// <summary> /// 赋值Cookie并加密 /// </summary> /// <param name="userName">用户名</param> /// <param name="user">用户信息</param> /// <param name="rememberMe">记住我</param> public static void SetAuthCookie(string userName, PrincipalUser user, bool rememberMe) { //如果为记住我 //if (rememberMe) //配置文件中读取记住我时间 _cookieSaveDays = Convert.ToDouble(GlobalParams.Get("rememberMeDay").ToString()); //赋值Cookie信息 SetAuthCookie(userName, user, rememberMe, _cookieSaveDays); }
/// <summary> /// 赋值Cookie并加密 /// </summary> /// <param name="userName">用户名</param> /// <param name="user">用户信息</param> /// <param name="rememberMe">记住我</param> /// <param name="cookiesSaveDays">cookies失效天数</param> public static void SetAuthCookie(string userName, PrincipalUser user, bool rememberMe, int cookiesSaveDays) { if (cookiesSaveDays != 0) { _cookieSaveDays = cookiesSaveDays; } if (user == null) { throw new ArgumentNullException("user"); } //序列化 string principalUser = (new JavaScriptSerializer()).Serialize(user); //创建票证 var ticket = new FormsAuthenticationTicket(1, userName, DateTime.Now, DateTime.Now.AddDays(_cookieSaveDays), true, principalUser); //将票证加密 string cookieValue = FormsAuthentication.Encrypt(ticket); //创建Cookie var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, cookieValue) { Domain = FormsAuthentication.CookieDomain, HttpOnly = true, Secure = FormsAuthentication.RequireSSL, Path = FormsAuthentication.FormsCookiePath }; //如果为"记住我" if (rememberMe) { cookie.Expires = DateTime.Now.AddDays(_cookieSaveDays); } //写入Cookie HttpContext.Current.Response.Cookies.Remove(cookie.Name); HttpContext.Current.Response.Cookies.Add(cookie); //写入Session及Cache HttpContext.Current.Session[user.Code] = user.UserId; HttpRuntime.Cache[user.Code] = HttpContext.Current.Session.SessionID; }
/// <summary> /// 赋值Cookie并加密 /// </summary> /// <param name="userName">用户名</param> /// <param name="user">用户信息</param> public static void SetAuthCookie(string userName, PrincipalUser user) { SetAuthCookie(userName, user, false); }