public bool CheckLogin(string account, string psw, out string message, out TLoginDTO result) { try { T_Login checkName = _repository.EntityNoTracking.Where(t => t.LoginName == account).FirstOrDefault(); if (checkName == null) { message = "用户名不存在!"; result = null; return(false); } T_Login checkLogin = _repository.EntityNoTracking.Where(t => t.LoginName == account && t.LoginPsw == psw).FirstOrDefault(); if (checkLogin == null) { message = "密码不正确!"; result = null; return(false); } message = "登录成功.."; result = checkLogin.ProjectedAs <TLoginDTO>(); return(true); } catch (Exception ex) { throw ex; } }
/// <summary> /// 编辑 /// </summary> /// <param name="loginUser"></param> /// <param name="login"></param> /// <returns></returns> public int EditLoginInfo(T_Login loginUser, T_Login login) { if (loginUser.if_false) { //登录成功 login.login_count = login.login_count + 1; login.error_count = 0; login.last_time = login.login_time; login.login_time = DateTime.Now; login.last_ip = login.login_ip; login.login_ip = loginUser.login_ip; login.if_false = loginUser.if_false; int temp = DBSession.IT_LoginDAL.EditLoginByOk(login); if (temp > 0 && login.login_count > 10000) { login.login_count = 1; Modify(login, s => s.user_id == login.user_id, "login_count"); } return(temp); } //登录失败 login.error_count += 1; login.login_time = DateTime.Now; login.login_ip = loginUser.login_ip; login.if_false = loginUser.if_false; login.note = loginUser.note; return(DBSession.IT_LoginDAL.EditLoginByError(login)); }
/// <summary> /// 根据用户ID获取登录信息 /// </summary> /// <returns></returns> public ActionResult GetLoginMessageData() { T_Login loginObj = operateContext.bllSession.T_Login.selectLoginById(operateContext.Usr.user_id); if (loginObj == null) { return(operateContext.RedirectAjax(1, "没有登录信息", "", "")); } return(operateContext.RedirectAjax(0, "成功获取登录信息", loginObj, "")); }
public bool CheckAccountExits(string account) { try { T_Login checkName = _repository.EntityNoTracking.Where(t => t.LoginName == account).FirstOrDefault(); return(checkName != null); } catch (Exception ex) { throw ex; } }
/// <summary> /// 实现添加/编辑登录记录 /// </summary> public int AddLoginInfo(T_Login loginUser) { T_Login login = selectLoginById(loginUser.user_id); if (login != null) { return(EditLoginInfo(loginUser, login)); } return(DBSession.IT_LoginDAL.AddLoginInfo(new T_Login() { user_id = loginUser.user_id, login_count = 1, login_time = loginUser.login_time, login_ip = loginUser.login_ip, if_false = loginUser.if_false })); }
//**************************** 2.0 登录权限 *********************************** #region 2.1 根据登录名查询用户权限 +GetUserPermission(string login_name) /// <summary> /// 根据登录名查询权限 /// </summary> /// <param name="login_name"></param> /// <returns></returns> //public List<T_AccessUser> GetUserPermission(string login_name) //{ // //1.0 查询T_Userinfo的user_id // List<int> listUserId = // bllSession.Auth_User.Select(s => s.UserName == login_name).Select(s => s.UserID).ToList(); // //2.0 根据user_id查询T_AccessUser表权限 // List<T_AccessUser> listPermission = // bllSession.T_AccessUser.Select(s => listUserId.Contains(s.user_id)).Select(s => s.ToPOCO()).ToList(); // //listPermission.ForEach(p => // //{ // // //p为当前遍历集合的元素 // //}); // return listPermission; //} #endregion #region 2.2 管理员登录方法 +LoginAdmin(MODEL.ViewModel.LoginUser user) /// <summary> /// 管理员登录方法 /// </summary> /// <param name="user">登录对象</param> /// <param name="writeSessionByUser">登录成功后是否需要将用户对象写入Session</param> /// <returns></returns> public LoginResultModel Login(LoginUser user, bool writeSessionByUser = true) { //2.1 根据用户名查询对象 LoginResultModel uModel = bllSession.T_User.GetByUser(user.LoginName, user.UserPwd); T_Login login = new HCQ2_Model.T_Login() { login_ip = RequestHelper.GetIP, login_time = DateTime.Now }; if (uModel.Status) { #region 登录成功 //1.将当前对象保存进Session if (writeSessionByUser) { Usr = uModel.user; HCQ2_Common.Login.LoginCache.SetCheckCacheLogin(Usr.login_name); } //添加登录信息 login.user_id = uModel.user.user_id; login.if_false = true; bllSession.T_Login.AddLoginInfo(login); //清理受限制表 bllSession.T_LimitUser.Delete(s => s.user_id == uModel.user.user_id); #endregion } else { #region 登录失败 if (uModel.Msg == LoginEnum.LoginResult.密码错误) { //更新登录信息表 login.user_id = uModel.user.user_id; login.if_false = false; login.note = LoginEnum.LoginResult.密码错误.ToString(); bllSession.T_Login.AddLoginInfo(login); T_Login elogin = bllSession.T_Login.selectLoginById(uModel.user.user_id); //更新提示信息 uModel.Message = LoginEnum.LoginResult.密码错误.ToString() + "> 密码错误不能超过:" + LoginEnum.LOGIN_ERR_NUM + "次,您当前已输入错误:" + elogin.error_count + "次"; if (elogin.error_count >= LoginEnum.LOGIN_ERR_NUM) { string srrMsg = "您输入密码错误次数超过" + LoginEnum.LOGIN_ERR_NUM + "次,请" + LoginEnum.WAIT_HOURS + "个小时后" + DateTime.Now.AddHours(LoginEnum.WAIT_HOURS).ToString("t") + "再试~"; uModel.Message = srrMsg; //添加受限制表记录 bllSession.T_LimitUser.Add(new T_LimitUser() { user_id = uModel.user.user_id, from_time = DateTime.Now, to_time = DateTime.Now.AddHours(LoginEnum.WAIT_HOURS), limit_note = srrMsg }); //更新登录记录表错误次数 } } return(uModel); #endregion } return(uModel); }
/// <summary> /// 添加登录记录 /// </summary> /// <param name="login">登录记录对象</param> /// <returns></returns> public int AddLoginInfo(T_Login login) { return(base.Add(login)); }
/// <summary> /// 登录失败时编辑 /// </summary> /// <param name="login">登录记录对象</param> /// <returns></returns> public int EditLoginByError(T_Login login) { return(base.Modify(login, s => s.user_id == login.user_id, "error_count", "login_time", "login_ip", "if_false", "note")); }