记住用户的密码,一般浏览器都有这个功能,基于C/S结构的软件实现这个功能也有很多方法,这里采用简单的文件流保存用户名及密码的方法来实现这个功能。
Person类,模拟用户
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace LMSys.Model
{/// <summary>/// 用户基类/// </summary>[Serializable]public class Person{#region 属性/// <summary>/// 用户名/// </summary>string userName;public string UserName{get { return userName; }set { userName = value; }}/// <summary>/// 密码/// </summary>string userPassword;public string UserPassword{get { return userPassword; }set { userPassword = value; }}/// <summary>/// 权限/// </summary>int power;public int Power{get { return power; }set { power = value; }}#endregion}
}
RememberUser类,记住用户,但采用的是二进制的方式保存数据
using LMSys.Model;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Threading.Tasks;namespace LMSys.BLL
{public class RememberUser{private static Dictionary<string, Person> persons = new Dictionary<string, Person>();/// <summary>/// 构造函数,读取文件流/// </summary>public RememberUser(){FileStream fs = new FileStream("Data.bin", FileMode.OpenOrCreate);if (fs.Length > 0){BinaryFormatter bf = new BinaryFormatter();persons = bf.Deserialize(fs) as Dictionary<string, Person>;}fs.Close();}/// <summary>/// 返回保存的用户列表/// </summary>/// <returns></returns>public Dictionary<string, Person> GetList(){return persons;}/// <summary>/// 添加新用户/// </summary>/// <param name="person"></param>public void AddRemember(Person person){FileStream fs = new FileStream("Data.bin", FileMode.Create);BinaryFormatter bf = new BinaryFormatter();if (persons.ContainsKey(person.UserName))//若已存在用户,先移除该用户{persons.Remove(person.UserName);}persons.Add(person.UserName, person);//再添加该用户,防止用户密码更新bf.Serialize(fs, persons);fs.Close();}}
}
这样,界面就可以很容易调用该类实现记住密码的功能。