C#序列化实现用户登录记住账号密码功能

简单的实现用户登录记住账号密码功能

用户类:

    /// 
    /// 用户
    /// 
    [Serializable]
    public class User : BaseEntity
    {
        public int Id { get; set; }

        /// 
        /// 用户名
        /// 
        [Display(Name = "用户名")]
        [StringLength(32)]
        public string Name { get; set; }

        /// 
        /// 性别
        /// 
        [Display(Name = "性别")]
        [StringLength(32)]
        public string Gender { get; set; }

        /// 
        /// 用户分组
        /// 
        [Display(Name = "用户分组")]
        [StringLength(32)]
        public string Group { get; set; }

        /// 
        /// 角色
        /// 
        [Display(Name = "角色")]
        [StringLength(32)]
        public string Role { get; set; }

        /// 
        /// 密码
        /// 
        [Display(Name = "密码")]
        [StringLength(255)]
        public string Password { get; set; }

        /// 
        /// 登录时间
        /// 
        [Display(Name = "登录时间")]
        public DateTime? LoginDateTime { get; set; }
    }

序列化,所谓序列化就是把实体对象保存到存储媒介中,以便于再次启动程序时可以读取到保存的信息。我们利用这个特点,实现用户账号和密码记住功能。

首先对用户类对象进行序列化:在用户登录成功时,保存用户的信息到本地。

                    Stream s = File.Open("user.dat", FileMode.OpenOrCreate);
                    BinaryFormatter binaryFormatter = new BinaryFormatter();

                    binaryFormatter.Serialize(s, user);
                    s.Close();

这样就把User类的实例保存到文件user.dat中,以便在用户再次打开程序时,自动输入账号和密码信息。

当用户再次进入登录界面时,我们对user.dat中保存的用户信息串行化,也就是把保存的信息还原为一个User对象,然后我们就可以使用读取到的信息填充登录界面的用户名和密码,实现记住账号和密码功能。

读取信息代码如下:

            if (!File.Exists("user.dat"))
            {
                return;
            }

            Stream fs = File.Open("user.dat", FileMode.Open);
            if (fs == null || fs.Length == 0)
            {
                return;
            }

            BinaryFormatter bf = new BinaryFormatter();

            object o = bf.Deserialize(fs);

            if (o is User user)
            {
                UserNameTextBox.Text = user.Name;
                PasswordTextBox.Text = user.Password;
                rememberPasswordCheckBox.Checked = true;
            }

            fs.Close();
以上就简单的实现了用户登录记住密码的功能。


你可能感兴趣的:(.NET)