Exemplo n.º 1
0
        /// <summary>
        /// 检测用户是否登陆
        /// </summary>
        /// <returns></returns>
        public static bool CheckUserIsLogin()
        {
            string stamp      = EncryptCookies.GetValue(CookieConfig.StampCkName);
            string userId     = EncryptCookies.GetValue(CookieConfig.UserIdCkName);
            string tokenvalue = EncryptCookies.GetValue(CookieConfig.TokenCkName);

            if (string.IsNullOrEmpty(stamp))
            {
                return(false);
            }
            if (string.IsNullOrEmpty(userId))
            {
                return(false);
            }
            if (string.IsNullOrEmpty(tokenvalue))
            {
                return(false);
            }
            //计算token
            IToken token = new LoginToken(userId, Convert.ToInt64(stamp), TokenConfig.LoginTokenKey);

            //对比cookie中的和重新计算的
            if (tokenvalue.ToUpper() == token.GetToken().ToUpper())
            {
                return(true);
            }
            return(false);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 登录成功写入用户信息
        /// </summary>
        /// <param name="userInfo"></param>
        public static void Login(UserInfo userInfo)
        {
            long     stamp  = DateTimeHelper.GetTimeStamp();
            IToken   token  = new LoginToken(userInfo.Id.ToString(CultureInfo.InvariantCulture), stamp, TokenConfig.LoginTokenKey); //密令
            DateTime exTime = DateTime.Now.AddMilliseconds(CookieConfig.LoginCookieExpiredTime);                                    //过期时间

            //写入cookie
            EncryptCookies.SetCookies(CookieConfig.UserIdCkName, userInfo.Id.ToString(CultureInfo.InvariantCulture), exTime); //userid
            EncryptCookies.SetCookies(CookieConfig.StampCkName, stamp.ToString(CultureInfo.InvariantCulture), exTime);        //时间戳
            EncryptCookies.SetCookies(CookieConfig.TokenCkName, token.GetToken(), exTime);                                    //密令


            var vmodel = UserInfoToVModel(userInfo);

            vmodel.Password = string.Empty;                           //密码要保密啊
            vmodel.RName    = Roles.GetRoleInfo(vmodel.RoleId).RName; //角色名

            //写入其它信息
            EncryptCookies.SetCookies(CookieConfig.UserOther, JsonConvert.SerializeObject(vmodel), exTime);//userinfo
        }
Exemplo n.º 3
0
        /// <summary>
        /// 检测用户是否登陆并返回用户信息(解析cookie信息,该信息用于展示,不能用于业务逻辑,业务逻辑请使用id获取用户信息)
        /// </summary>
        /// <returns></returns>
        public static UserVModel CheckUserIsLoginAndGetUserInfo()
        {
            string stamp      = EncryptCookies.GetValue(CookieConfig.StampCkName);
            string userId     = EncryptCookies.GetValue(CookieConfig.UserIdCkName);
            string tokenvalue = EncryptCookies.GetValue(CookieConfig.TokenCkName);
            string userOther  = EncryptCookies.GetValue(CookieConfig.UserOther);//其它信息

            if (string.IsNullOrEmpty(stamp))
            {
                return(null);
            }
            if (string.IsNullOrEmpty(userId))
            {
                return(null);
            }
            if (string.IsNullOrEmpty(tokenvalue))
            {
                return(null);
            }
            //计算token
            IToken token = new LoginToken(userId, Convert.ToInt64(stamp), TokenConfig.LoginTokenKey);

            //对比cookie中的和重新计算的
            if (tokenvalue.ToUpper() == token.GetToken().ToUpper())
            {
                try
                {
                    //解析信息
                    var user = JsonConvert.DeserializeObject <UserVModel>(userOther);
                    return(user);
                }
                catch (Exception)
                {
                    LogOut();
                    return(null);
                }
            }
            return(null);
        }