记住密码超简单实现(C#)

实现效果如下

记住密码超简单实现(C#)

实现过程

 [Serializable]
    class User
    {
        //记住密码
        private string loginID;
        public string LoginID
        {
            get { return loginID; }
            set { loginID = value; }
        }

        private string pwd;
        public string Pwd
        {
            get { return pwd; }
            set { pwd = value; }
        }
       
    }

首先新建一个实体类,创建两个字段并封装成对应属性

                    User user = new User();
                    // 登录时 如果没有Data.bin文件就创建、有就打开
                    FileStream fs = new FileStream("data.bin", FileMode.OpenOrCreate);
                    BinaryFormatter bf = new BinaryFormatter();
                    // 保存在实体类属性中
                    user.LoginID = comboBoxEx1.Text.Trim();
                    //保存密码选中状态
                    if (checkBoxXUser.Checked)
                        user.Pwd = passWordtext.Text.Trim();
                    else
                        user.Pwd = "";
                    //选在集合中是否存在用户名 
                    if (users.ContainsKey(user.LoginID))
                    {
                        //如果有清掉
                        users.Remove(user.LoginID);
                    }
                    //添加用户信息到集合
                    users.Add(user.LoginID, user);
                    //写入文件
                    bf.Serialize(fs, users);
                    //关闭
                    fs.Close();

然后对选中按钮做判断是否选中,若选中则将用户信息添加到集合中。最后记得关闭文件的读写操作~,到这里已经完成了保存用户信息到集合中了。是不是超简单,不过还没有完。因为我们上面只是保存,我们需要打开窗体或者页面的时候,是需要将用户信息再次

读取出来的。所以下面将是对用户信息的读操作

            //读取文件流对象
            FileStream fs = new FileStream("data.bin", FileMode.OpenOrCreate);
            if (fs.Length > 0)
            {
                BinaryFormatter bf = new BinaryFormatter();
                //读出存在Data.bin 里的用户信息
                users = bf.Deserialize(fs) as Dictionary<string, User>;
                //循环添加到Combox1
                foreach (User user in users.Values)
                {
                    comboBoxEx1.Items.Add(user.LoginID);
                }

                //combox1 用户名默认选中第一个
                if (comboBoxEx1.Items.Count > 0)
                    comboBoxEx1.SelectedIndex = comboBoxEx1.Items.Count - 1;
            }
            fs.Close();

读的话比较简单,就不一一解释了,相信各位能看明白,另外,当中需要引用到的类库是

using System.Runtime.Serialization.Formatters.Binary;

using System.Threading;