Exemple #1
0
        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;
            }
        }
Exemple #2
0
 /// <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, ""));
        }
Exemple #4
0
 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;
     }
 }
Exemple #5
0
        /// <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);
        }
Exemple #7
0
 /// <summary>
 ///  添加登录记录
 /// </summary>
 /// <param name="login">登录记录对象</param>
 /// <returns></returns>
 public int AddLoginInfo(T_Login login)
 {
     return(base.Add(login));
 }
Exemple #8
0
 /// <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"));
 }