/// <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("验证用户资料失败!"); } }
/// <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); }