Ejemplo n.º 1
0
        /// <summary>
        /// 检查用户登录凭证,验证通过才允许访问后台数据.
        /// </summary>
        /// <param name="loginer">用户登录凭证</param>
        /// <returns></returns>
        public static Loginer ValidateLoginer(byte[] loginer)
        {
            //用户登录信息的长度小于伪码长度,数据包无效!
            if (loginer.Length < PREFIX_LEN + SUFFIX_LEN)
            {
                return(null);
            }

            try
            {
                //用户登录信息的长度
                byte[] objectArrar = new byte[loginer.Length - (PREFIX_LEN + SUFFIX_LEN)];

                //复制用户登录信息的数据包(去掉前后伪码)
                Array.Copy(loginer, PREFIX_LEN, objectArrar, 0, objectArrar.Length);

                //转换为用户对象
                Loginer user = (Loginer)ZipTools.DecompressionObject(objectArrar);
                if (user.Account.Length >= 1) //系统限制用户帐号的长度必须大于或等于1位
                {
                    return(user);             //转换成功,返回用户对象.
                }
                else
                {
                    throw new Exception("用户帐号不正确!");
                }
            }
            catch
            {
                throw new Exception("验证用户资料失败!");
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 加密用户登录凭证
        /// </summary>
        /// <param name="user">当前用户登录信息</param>
        /// <returns></returns>
        public static byte[] EncryptLoginer(Loginer user)
        {
            byte[] user_byte = ZipTools.CompressionObject(user);
            byte[] result    = new byte[user_byte.Length + PREFIX_LEN + SUFFIX_LEN];

            byte[] prefix = GetByteData(PREFIX_LEN);
            byte[] suffix = GetByteData(SUFFIX_LEN);

            Array.Copy(user_byte, 0, result, PREFIX_LEN, user_byte.Length);           //复制用户数据
            Array.Copy(prefix, 0, result, 0, prefix.Length);                          //复制头部伪码
            Array.Copy(suffix, 0, result, result.Length - SUFFIX_LEN, suffix.Length); //复制尾部伪码

            return(result);
        }