コード例 #1
0
ファイル: UserContext.cs プロジェクト: chenggang1987/chuanyu
        /// <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);
            }
        }