コード例 #1
0
 /// <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);
 }
コード例 #2
0
        /// <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;
        }
コード例 #3
0
 /// <summary>
 ///     赋值Cookie并加密
 /// </summary>
 /// <param name="userName">用户名</param>
 /// <param name="user">用户信息</param>
 public static void SetAuthCookie(string userName, PrincipalUser user)
 {
     SetAuthCookie(userName, user, false);
 }