using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using StandardLibrary; namespace StandardLibrary { public enum User { NoLogin, // 未登录 Operator, // 操作员 Admin, // 管理员 SuperAdmin // 超管 } public class UserAccount { private string filePath = AppDomain.CurrentDomain.BaseDirectory + "SystemParameter.ini"; private Dictionary userPassword = new Dictionary(); private User _userPermission = User.NoLogin; public delegate void UserChangedHandler(User user); public event UserChangedHandler UserChangedEvent; public UserAccount() { GetUserPassword(); } public User UserPermission { get { return _userPermission; } } /// /// 获取用户密码 /// private void GetUserPassword() { userPassword.Clear(); userPassword.Add(User.Operator, IniFile.INIGetStringValue(filePath, "Password", "Operator", "")); userPassword.Add(User.Admin, IniFile.INIGetStringValue(filePath, "Password", "Admin", "")); userPassword.Add(User.SuperAdmin, IniFile.INIGetStringValue(filePath, "Password", "SuperAdmin", "")); } /// /// 保存用户密码 /// private void SaveUserPassword() { IniFile.INIWriteValue(filePath, "Password", "Operator", userPassword[User.Operator]); IniFile.INIWriteValue(filePath, "Password", "Admin", userPassword[User.Admin]); IniFile.INIWriteValue(filePath, "Password", "SuperAdmin", userPassword[User.SuperAdmin]); } /// /// 用户登录 /// /// 用户 /// 输入密码 /// public bool UserLogin(User user, string inputPassword) { if (user == User.NoLogin) return false; if (userPassword[user] == inputPassword) { _userPermission = user; UserChangedEvent?.Invoke(_userPermission); return true; } else return false; } /// /// 用户登出 /// public void UserLogout() { _userPermission = User.NoLogin; UserChangedEvent?.Invoke(_userPermission); } public void UserSet(User user) { _userPermission = user; UserChangedEvent?.Invoke(_userPermission); } /// /// 密码修改 /// /// 用户 /// 旧密码 /// 新密码 /// 新密码确认 /// public bool UserChangePassword(User user, string oldpa, string newpa1, string newpa2) { if (user == User.NoLogin) return false; if (userPassword[user] == oldpa) { if (newpa1 == newpa2) { userPassword[user] = newpa1; _userPermission = User.NoLogin; UserChangedEvent?.Invoke(_userPermission); SaveUserPassword(); return true; } else return false; } else return false; } public User GetUserName(string userText) { User user = new User(); switch (userText) { case "操作员": user = User.Operator; break; case "管理员": user = User.Admin; break; case "超级管理员": user = User.SuperAdmin; break; default: user = User.NoLogin; break; } return user; } } }