Beispiel #1
0
        /// <summary>
        /// 当前用户
        /// </summary>
        /// <returns></returns>
        public virtual Operator Current()
        {
            try
            {
                Operator user = new Operator();
                if (LoginProvider == "Cookie")
                {
                    user = DESEncrypt.Decrypt(WebHelper.GetCookie(LoginUserKey).ToString()).ToObject <Operator>();

                    if (user != null)
                    {
                        var LoginUserAuthorizesKey = LoginUserKey + user.UserId;
                        #region 解决cookie时,设置数据权限较多时无法登陆的bug
                        AuthorizeDataModel dataAuthorize = CacheFactory.Cache().GetCache <AuthorizeDataModel>(LoginUserAuthorizesKey);
                        user.DataAuthorize = dataAuthorize;
                        #endregion

                        //System.IO.File.AppendAllText("d:\\epclog.txt", "Current=>GetCache:UserID:" + user.UserId + ";CacheCount:" + dataButtonAuthority_View.Count() + "\r\n");
                    }
                }
                else if (LoginProvider == "AppClient")
                {
                    user = CacheFactory.Cache().GetCache <Operator>(AppUserId);
                }
                else
                {
                    user = DESEncrypt.Decrypt(WebHelper.GetSession(LoginUserKey).ToString()).ToObject <Operator>();
                }
                return(user);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
Beispiel #2
0
        /// <summary>
        /// 是否已登录
        /// </summary>
        /// <returns></returns>
        public virtual int IsOnLine()
        {
            Operator user = new Operator();

            if (LoginProvider == "Cookie")
            {
                user = DESEncrypt.Decrypt(WebHelper.GetCookie(LoginUserKey).ToString()).ToObject <Operator>();
                if (user != null)
                {
                    return(-1);//过期
                }
                var LoginUserAuthorizesKey = LoginUserKey + user.UserId;
                #region 解决cookie时,设置数据权限较多时无法登陆的bug
                AuthorizeDataModel dataAuthorize = CacheFactory.Cache().GetCache <AuthorizeDataModel>(LoginUserAuthorizesKey);
                user.DataAuthorize = dataAuthorize;
                #endregion
            }
            else
            {
                user = DESEncrypt.Decrypt(WebHelper.GetSession(LoginUserKey).ToString()).ToObject <Operator>();
            }
            object token = CacheFactory.Cache().GetCache <string>(user.UserId);
            if (token == null)
            {
                return(-1);//过期
            }
            if (user.Token == token.ToString())
            {
                return(1);//正常
            }
            else
            {
                return(0);//已登录
            }
        }