BlAuthoryUser.cs 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. using ProjectBase.Data.BaseDAL;
  2. using ProjectBase.Data.Encrypt;
  3. using ProjectBase.Data.Logs;
  4. using SIMDP.DAL.IDALSQL;
  5. using SIMDP.Model;
  6. using System;
  7. using System.Management;
  8. using System.Net;
  9. using ProjectBase.Util;
  10. namespace SIMDP.BLL
  11. {
  12. public class BlAuthoryUser : BaseBLL<MoAuthoryUser>
  13. {
  14. private IDalAuthoryUser dalAuthoryUser;
  15. /// <summary>
  16. /// 构造函数
  17. /// </summary>
  18. public BlAuthoryUser() : base()
  19. {
  20. base.Init(this.GetType().FullName, System.Reflection.Assembly.GetExecutingAssembly().GetName().Name);
  21. dalAuthoryUser = base.baseDal as IDalAuthoryUser;
  22. dalAuthoryUser.OnOperationLog += new OperationLogEventHandler(BlLogOperation.OnOperationLog);
  23. }
  24. /// <summary>
  25. /// 登录账户和密码验证,记录系统当前用户名 SysEnvironment.CurrentLoginName = user.UserName;
  26. /// </summary>
  27. /// <param name="userAccount">账户</param>
  28. /// <param name="userPasswd">密码</param>
  29. /// <param name="message">反馈信息</param>
  30. /// <returns></returns>
  31. public bool VerifyLogin(string userAccount, string userPasswd, out string message)
  32. {
  33. try
  34. {
  35. message = "";
  36. MoAuthoryUser user = FindByID(userAccount);
  37. if (user == null)
  38. {
  39. message = "不存在账号!";
  40. return false;
  41. }
  42. //string encrptPasswd = EncodeHelper.MD5Encrypt(userPasswd);
  43. //如果该用户的密码是初始密码,让用户修改密码
  44. if (user.LoginPasswd.Equals(EncodeHelper.EncryptString("000000")))
  45. {
  46. message = "您的密码为初始密码,请点击开始菜单修改密码!";
  47. return false;
  48. }
  49. if (userPasswd.Equals(user.LoginPasswd))
  50. {
  51. SysEnvironment.CurrentLoginName = user.UserName;
  52. SysEnvironment.CurrentLoginGroupId = user.GroupId;
  53. bool flag = BLLFactory<BlWhite>.Instance.VerifyBlackWhite(user.LoginAccount, SysEnvironment.Ip, out message);
  54. if (!flag)
  55. {
  56. return false;
  57. }
  58. //登录成功后记录到用户登录日志中
  59. MoLogLogIn moLogIn = new MoLogLogIn
  60. {
  61. Account = user.LoginAccount,
  62. Name = user.UserName,
  63. GroupId = user.GroupId,
  64. Description = "用户登录",
  65. Ip = SysEnvironment.Ip,
  66. Mac = SysEnvironment.Mac,
  67. Time = DateTime.Now
  68. };
  69. if (BLLFactory<BlLogLogIn>.Instance.Insert(moLogIn))
  70. {
  71. return true;
  72. }
  73. else
  74. {
  75. message = "记录用户登录日志失败";
  76. return false;
  77. }
  78. }
  79. else
  80. {
  81. message = "密码错误!";
  82. return false;
  83. }
  84. }
  85. catch (Exception ex)
  86. {
  87. LogHelper.log.Error(string.Format("验证用户登录出错:{0}", ex));
  88. message = ex.ToString();
  89. return false;
  90. }
  91. }
  92. /// <summary>
  93. /// 【弃用】验证是否符合登出条件,并记录登出日志
  94. /// </summary>
  95. /// <param name="userAccount"></param>
  96. /// <param name="userPasswd"></param>
  97. /// <param name="message"></param>
  98. /// <returns></returns>
  99. public bool VerifyLogout(string userAccount, string userPasswd, out string message)
  100. {
  101. try
  102. {
  103. message = "";
  104. MoAuthoryUser user = FindByID(userAccount);
  105. if (user == null)
  106. {
  107. message = "不存在账号!";
  108. return false;
  109. }
  110. //判断输入的账号是不是已登陆的帐号
  111. //to do ...
  112. if (userPasswd.Equals(user.LoginPasswd))
  113. {
  114. //记录登出日志
  115. MoLogLogIn moLogIn = new MoLogLogIn
  116. {
  117. Account = user.LoginAccount,
  118. Name = user.UserName,
  119. GroupId = user.GroupId,
  120. Description = "用户退出程序",
  121. Ip = SysEnvironment.Ip,
  122. Mac = SysEnvironment.Mac,
  123. Time = DateTime.Now
  124. };
  125. //记录用户退出程序
  126. BLLFactory<BlLogLogIn>.Instance.Insert(moLogIn);
  127. return true;
  128. }
  129. else
  130. {
  131. message = "密码错误!";
  132. return false;
  133. }
  134. }
  135. catch (Exception ex)
  136. {
  137. LogHelper.log.Error(string.Format("验证用户退出程序出错:{0}", ex));
  138. message = ex.ToString();
  139. return false;
  140. }
  141. }
  142. /// <summary>
  143. /// 验证是否有操作权限,并记录到操作表中去
  144. /// </summary>
  145. /// <param name="userAccount"></param>
  146. /// <param name="userPasswd"></param>
  147. /// <param name="message"></param>
  148. /// <returns></returns>
  149. public bool VerifyAuthorization(string userAccount, string userPasswd, out string message)
  150. {
  151. try
  152. {
  153. message = "";
  154. MoAuthoryUser user = FindByID(userAccount);
  155. if (user == null)
  156. {
  157. message = "不存在账号!";
  158. return false;
  159. }
  160. //判断是否是超级管理员 或 系统管理员
  161. if (user.GroupId != "1001" && user.GroupId != "1000")
  162. {
  163. message = "该用户无权限";
  164. return false;
  165. }
  166. if (userPasswd.Equals(user.LoginPasswd))
  167. {
  168. SysEnvironment.CurrentLoginName = user.UserName;
  169. SysEnvironment.CurrentLoginGroupId = user.GroupId;
  170. bool flag = BLLFactory<BlWhite>.Instance.VerifyBlackWhite(user.LoginAccount, SysEnvironment.Ip, out message);
  171. if (!flag)
  172. {
  173. message = "";//黑名单
  174. return false;
  175. }
  176. else return true;
  177. }
  178. else
  179. {
  180. message = "密码错误!";
  181. return false;
  182. }
  183. }
  184. catch (Exception ex)
  185. {
  186. LogHelper.log.Error(string.Format("验证操作权限出错:{0}", ex));
  187. message = ex.ToString();
  188. return false;
  189. }
  190. }
  191. }
  192. }