using System; using System.Configuration; using CommonTool; using YZXYH.Repository.Models; namespace YZXYH.Repository { public partial class SysUserRepository { /// /// 管理员登录 /// /// 管理员账号 /// 管理员密码 /// 错误信息 /// 管理员类型 /// public bool Login(string pcSysNo, string pcPassword, ref string pcErrorMsg, UserType userType) { if (pcErrorMsg == null) throw new ArgumentNullException(nameof(pcErrorMsg)); bool lbRetval = false; string lcMsg = "失败"; pcErrorMsg = ""; if (!IsExist(u => u.SysNo == pcSysNo && u.IsLocked == "N")) pcErrorMsg = "管理员不存在!"; else { SysUser loSysUser = GetSingle(u => u.SysNo == pcSysNo); pcPassword = SysSecurity.Encrypt4CPlus(pcPassword.Trim()); if (loSysUser.SysPassword == pcPassword.Trim()) { lbRetval = true; lcMsg = "成功"; string lcGuid = UtilRandom.GetGuid(); SysUserInfo loUserInfo = new SysUserInfo(pcSysNo, pcPassword, loSysUser.SysName, userType) { UserGuid = lcGuid }; UserListSession.Instance.Add(lcGuid, loUserInfo); string lcSessionName = ConfigurationManager.AppSettings["SysUserInfoSession"]; SessionHelper.Instance.AddSession(lcSessionName, lcGuid, 30); } else pcErrorMsg = "管理员密码错误!"; new SysLogRepository(Context).AddLog(userType + " | Login", " 登录 " + lcMsg, loSysUser.SysName + "|" + pcSysNo, pcErrorMsg); } return lbRetval; } /// /// 修改密码 /// /// 管理员账号 /// 原密码 /// 新密码 /// 操作信息 /// /// public bool ModifyPassword(string pcSysNo, string pcOldPassword, string pcNewPassword, ref string pcMsg, SysUserInfo sysUserInfo) { if (pcMsg == null) throw new ArgumentNullException(nameof(pcMsg)); bool lbRetval = false; string lcErrorMsg = ""; SysUser sysUser = GetSingle(a => a.SysNo == pcSysNo && a.IsLocked == "N"); if (sysUser != null) { if (SysSecurity.Encrypt4CPlus(pcOldPassword.Trim()) == sysUser.SysPassword) { Update(a => a.SysNo == pcSysNo, a => new SysUser { SysPassword = SysSecurity.Encrypt4CPlus(pcNewPassword.Trim()) }); if (Save()) { pcMsg = "密码修改成功"; lbRetval = true; } else lcErrorMsg = pcMsg = "密码修改失败"; } else pcMsg = "原密码错误"; UnitOfWork.SysLogRepository.AddLog(sysUserInfo.UserType + " | Modify", " 修改密码" + pcMsg, sysUser.SysName + "|" + sysUser.SysNo, lcErrorMsg); } else { pcMsg = "用户不存在或已被锁定!"; } return lbRetval; } /// /// 重置密码 /// /// /// /// /// /// /// /// public bool ResetPassword(string pcSysNo, string pcPassword, string adminPassword, ref string pcMsg, SysUserInfo sysUserInfo) { if (pcMsg == null) throw new ArgumentNullException(nameof(pcMsg)); bool lbRetval = false; string lcErrorMsg = ""; SysUser sysUser = GetSingle(a => a.SysNo == pcSysNo && a.IsLocked == "N"); if (sysUser != null) { if (string.IsNullOrEmpty(adminPassword) || SysSecurity.Encrypt4CPlus(sysUserInfo.Password.Trim()) == adminPassword) { Update(a => a.SysNo == pcSysNo, a => new SysUser { SysPassword = SysSecurity.Encrypt4CPlus(pcPassword.Trim()) }); if (Save()) { pcMsg = "密码修改成功"; lbRetval = true; } else lcErrorMsg = pcMsg = "密码修改失败"; } else pcMsg = "管理员密码错误"; UnitOfWork.SysLogRepository.AddLog(sysUserInfo.UserType + " | Reset", " 重置密码" + pcMsg, sysUserInfo.UserName + "|" + sysUserInfo.UserNo, lcErrorMsg); } else { pcMsg = "用户不存在或已被锁定!"; } return lbRetval; } } }