Ejemplo n.º 1
0
 /// <summary>
 /// 插入用户信息到FindPassWord表,并设置状态为0
 /// </summary>
 /// <param name="userModel"></param>
 /// <param name="securityCode"></param>
 private int AddUserFindPassword(User userModel, string securityCode)
 {
     var findPassModel = new v4_Usr_FindMailPassword()
     {
         usr_UserID = userModel.ID,
         VirificationCode = securityCode,
         Mail = userModel.Email ?? "@Email",
         State = 0,
         ExtField = DateTime.Now,
         Tel = userModel.Mobile,
         ValidateCount = 1,
         FailTime = DateTime.Now.AddHours(1),
         CreateTime = DateTime.Now
     };
     //用户信息插入数据库
     var recevied = new v4UsrFindPasswordService().Insert(findPassModel);
     if (recevied > 0)
     {
         return recevied;
     }
     return -1;
 }
Ejemplo n.º 2
0
        /// <summary>
        /// 校验用户是否正确
        /// </summary>
        /// <param name="emailOrSms"></param>
        /// <param name="validateCode"></param>
        /// <returns></returns>
        public ActionResult SendNewEncyCode(string emailOrSms, string validateCode)
        {
            if (string.IsNullOrWhiteSpace(validateCode)) //验证码
            {
                return this.Json(new AjaxResponse { State = 0, Message = "验证码不能为空" });
            }
            string code = UserSessionManager.SecurityCode;
            if (string.IsNullOrWhiteSpace(code) ||
                validateCode != code)
            {
                return Json(new AjaxResponse { State = 0, Message = "验证码输入有误" });
            }

            var userModel = new UserService().QueryUserByMobileOrEmail(emailOrSms);    //验证用户是否存在
            if (userModel == null)
            {
                return Json(new AjaxResponse { State = 0, Message = "用户名不存在或用户名错误,请重新输入" });
            }
            var ran = new Random();
            var ranCode = ran.Next(100, 999).ToString() + ran.Next(100, 999);
            var pwd = Encrypt.HashByMD5(ranCode);
            var findPassword = new v4UsrFindPasswordService().GetByUserId(userModel.ID);
            int validateCount = -1;
            if (findPassword != null)
            {
                validateCount = findPassword.ValidateCount;
                if (DateTime.Now.Day - findPassword.ExtField.Day > 1)
                {
                    new v4UsrFindPasswordService().UpdateValidateCount(userModel.ID, 1);
                }
            }
            else
            {
                AddUserFindPassword(userModel, ranCode);//用户信息插入数据库
            }
            if (validateCount == 5)
            {
                return Json(new AjaxResponse { State = 0, Message = "您已超过系统最大受理次数,系统不予受理,请明天再申请" });
            }

            if (emailOrSms.Contains("@"))   //检验用户输入的是邮箱还是手机号码
            {
                string[] address = { userModel.Email };
                if (SendEmail(ranCode, address) == 1)
                {
                    new UserService().UpdateUserPassword(pwd, userModel.ID);//修改用户密码
                    RecodValidateCount(userModel.ID, validateCount);//记录用操作次数
                    return Json(new AjaxResponse
                    {
                        State = 1,
                        Message = "邮箱"
                    });
                }
            }
            try
            {
                string[] mobile = { userModel.Mobile };
                SendSms(mobile, ranCode); //发短信
                RecodValidateCount(userModel.ID, validateCount);
                new UserService().UpdateUserPassword(pwd, userModel.ID);//修改用户密码
            }
            catch (Exception exception)
            {
                throw new Exception(exception.Message);
            }
            return Json(new AjaxResponse { State = 1, Message = "手机" });
        }