コード例 #1
0
        /// <summary>
        /// 写用户认证
        /// </summary>
        /// <param name="ticketRequest">用户票据</param>
        /// <param name="createPersistentCookie">是否创建持久性Cookie</param>
        public void Ticket(TicketRequest ticketRequest, bool createPersistentCookie)
        {
            var ticket = new FormsAuthenticationTicket(
                1,
                ticketRequest.SysNo.ToString(),
                DateTime.Now,
                DateTime.Now.Add(FormsAuthentication.Timeout),
                createPersistentCookie,
                ticketRequest.ToJson(),
                FormsAuthentication.FormsCookiePath);

            var encryptedTicket = FormsAuthentication.Encrypt(ticket);

            var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket)
            {
                HttpOnly = true
            };

            if (ticket.IsPersistent)
            {
                cookie.Expires = ticket.Expiration;
            }
            cookie.Secure = FormsAuthentication.RequireSSL;
            cookie.Path   = FormsAuthentication.FormsCookiePath;
            if (FormsAuthentication.CookieDomain != null)
            {
                cookie.Domain = FormsAuthentication.CookieDomain;
            }

            HttpContext.Current.Response.Cookies.Add(cookie);
        }