public SysIdentity GetCurrentSysIdentity()
        {
            SysIdentity sysIdentity = WebHelper.GetSysIdentity(HttpContext.Current.User);

            string gwpasscode = HttpContext.Current.Request[GW_PASSCODE];

            if (sysIdentity == null && !String.IsNullOrEmpty(gwpasscode))
            {
                if (this.GetUserSessionState(gwpasscode) == UserSessionState.Valid)
                {
                    UserInfo ui = GetUserInfo(gwpasscode);

                    SetAuthenticationTicket(gwpasscode, ui.LoginName);

                    sysIdentity          = new SysIdentity(gwpasscode);
                    sysIdentity.UserInfo = ui;

                    SysPrincipal sp = new SysPrincipal(sysIdentity);
                    HttpContext.Current.User = sp;
                }
            }

            if (sysIdentity != null && !String.IsNullOrEmpty(sysIdentity.UserSID))
            {
                if (sysIdentity.UserInfo == null)
                {
                    sysIdentity.UserInfo = GetUserInfo(sysIdentity.UserSID);
                }
            }

            return(sysIdentity);
        }
        /// <summary>
        /// 获取登陆标识信息
        /// </summary>
        public static void AcquireRequestIdentity()
        {
            IPrincipal user        = HttpContext.Current.User;
            string     requestPath = HttpContext.Current.Request.FilePath.ToLower();

            // 只有aspx页面才需要验证
            if (!(requestPath.EndsWith("aspx") || requestPath.EndsWith("ashx")))
            {
                return;
            }

            // 用户认证
            if (user != null && user.Identity.IsAuthenticated && user.Identity.AuthenticationType == "Forms")
            {
                FormsIdentity formIdentity = user.Identity as FormsIdentity;
                string        sid          = formIdentity.Ticket.UserData;

                if (!String.IsNullOrEmpty(sid))
                {
                    SysIdentity  si = new SysIdentity(sid);
                    SysPrincipal sp = new SysPrincipal(si);
                    HttpContext.Current.User = sp;
                }
            }
        }
        /// <summary>
        /// 设置认证令牌
        /// </summary>
        /// <param name="sessionId"></param>
        /// <param name="loginName"></param>
        private void SetAuthenticationTicket(string sessionId, string loginName)
        {
            SysIdentity  si = null;
            SysPrincipal sp = null;

            // 判断返回的是否用户状态
            HttpCookie authCookie = FormsAuthentication.GetAuthCookie(loginName, true);

            authCookie.Expires.AddYears(99);  // 永不过期

            FormsAuthenticationTicket ticket    = FormsAuthentication.Decrypt(authCookie.Value);
            FormsAuthenticationTicket newTicket = new FormsAuthenticationTicket(
                ticket.Version, ticket.Name, ticket.IssueDate,
                ticket.Expiration, ticket.IsPersistent, sessionId);

            authCookie.Value = FormsAuthentication.Encrypt(newTicket);
            HttpContext.Current.Response.Cookies.Add(authCookie);
        }