SystemParameter.cs 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading;
  6. using StandardLibrary;
  7. namespace StandardLibrary
  8. {
  9. public enum User
  10. {
  11. NoLogin, // 未登录
  12. Operator, // 操作员
  13. Admin, // 管理员
  14. SuperAdmin // 超管
  15. }
  16. public class UserAccount
  17. {
  18. private string filePath = AppDomain.CurrentDomain.BaseDirectory + "SystemParameter.ini";
  19. private Dictionary<User, string> userPassword = new Dictionary<User, string>();
  20. private User _userPermission = User.NoLogin;
  21. public delegate void UserChangedHandler(User user);
  22. public event UserChangedHandler UserChangedEvent;
  23. public UserAccount()
  24. {
  25. GetUserPassword();
  26. }
  27. public User UserPermission
  28. {
  29. get { return _userPermission; }
  30. }
  31. /// <summary>
  32. /// 获取用户密码
  33. /// </summary>
  34. private void GetUserPassword()
  35. {
  36. userPassword.Clear();
  37. userPassword.Add(User.Operator, IniFile.INIGetStringValue(filePath, "Password", "Operator", ""));
  38. userPassword.Add(User.Admin, IniFile.INIGetStringValue(filePath, "Password", "Admin", ""));
  39. userPassword.Add(User.SuperAdmin, IniFile.INIGetStringValue(filePath, "Password", "SuperAdmin", ""));
  40. }
  41. /// <summary>
  42. /// 保存用户密码
  43. /// </summary>
  44. private void SaveUserPassword()
  45. {
  46. IniFile.INIWriteValue(filePath, "Password", "Operator", userPassword[User.Operator]);
  47. IniFile.INIWriteValue(filePath, "Password", "Admin", userPassword[User.Admin]);
  48. IniFile.INIWriteValue(filePath, "Password", "SuperAdmin", userPassword[User.SuperAdmin]);
  49. }
  50. /// <summary>
  51. /// 用户登录
  52. /// </summary>
  53. /// <param name="user">用户</param>
  54. /// <param name="inputPassword">输入密码</param>
  55. /// <returns></returns>
  56. public bool UserLogin(User user, string inputPassword)
  57. {
  58. if (user == User.NoLogin) return false;
  59. if (userPassword[user] == inputPassword)
  60. {
  61. _userPermission = user;
  62. UserChangedEvent?.Invoke(_userPermission);
  63. return true;
  64. }
  65. else return false;
  66. }
  67. /// <summary>
  68. /// 用户登出
  69. /// </summary>
  70. public void UserLogout()
  71. {
  72. _userPermission = User.NoLogin;
  73. UserChangedEvent?.Invoke(_userPermission);
  74. }
  75. public void UserSet(User user)
  76. {
  77. _userPermission = user;
  78. UserChangedEvent?.Invoke(_userPermission);
  79. }
  80. /// <summary>
  81. /// 密码修改
  82. /// </summary>
  83. /// <param name="user">用户</param>
  84. /// <param name="oldpa">旧密码</param>
  85. /// <param name="newpa1">新密码</param>
  86. /// <param name="newpa2">新密码确认</param>
  87. /// <returns></returns>
  88. public bool UserChangePassword(User user, string oldpa, string newpa1, string newpa2)
  89. {
  90. if (user == User.NoLogin) return false;
  91. if (userPassword[user] == oldpa)
  92. {
  93. if (newpa1 == newpa2)
  94. {
  95. userPassword[user] = newpa1;
  96. _userPermission = User.NoLogin;
  97. UserChangedEvent?.Invoke(_userPermission);
  98. SaveUserPassword();
  99. return true;
  100. }
  101. else return false;
  102. }
  103. else return false;
  104. }
  105. public User GetUserName(string userText)
  106. {
  107. User user = new User();
  108. switch (userText)
  109. {
  110. case "操作员":
  111. user = User.Operator;
  112. break;
  113. case "管理员":
  114. user = User.Admin;
  115. break;
  116. case "超级管理员":
  117. user = User.SuperAdmin;
  118. break;
  119. default:
  120. user = User.NoLogin;
  121. break;
  122. }
  123. return user;
  124. }
  125. }
  126. }