コード例 #1
0
 public ActionResult Reset(ResetPwdModel m)
 {
     if (m.email != null)
     {
         if (IsValidEmail(m.email))
         {
             using (var entities = new RecipesMVC.Models.EF_DB.RecipesAppEntities())
             {
                 if (entities.Users.Any(u => u.Email == m.email))
                 {
                     //then.. email address valid.
                     Guid verCode  = Guid.NewGuid();
                     var  CurrUser = (from u in entities.Users where u.Email == m.email select u).FirstOrDefault();
                     CurrUser.ResetGUID    = verCode.ToString();
                     CurrUser.ResetGUIDexp = DateTime.Now.AddDays(1);
                     entities.SaveChanges();
                     string[] emailInfo = new string[3];
                     emailInfo[0] = verCode.ToString();
                     emailInfo[1] = CurrUser.UserName;
                     emailInfo[2] = Request.Url.Scheme + "://" + Request.Url.Host;
                     RecipesMVC.Core.EmailMessaging msg = new Core.EmailMessaging(CurrUser.Email, Core.EmailMessaging.MessageType.ResetPassword, emailInfo);
                     msg.SendAsyncAndDispose();
                     return(Json(new { Message = "SUCCESS" }, JsonRequestBehavior.AllowGet));
                 }
             }
         }
     }
     return(Json(new { Message = "ERROR" }, JsonRequestBehavior.AllowGet));
 }
コード例 #2
0
 public ActionResult ResetPassword(ResetPwdModel model)
 {
     if (ModelState.IsValid)
     {
         if (db.BEmplyees.Where(m => m.NumberEmp == model.UserName).Count() <= 0)
         {
             return(Content("单位名称错误!"));
         }
         if (WebSecurity.ResetPassword(WebSecurity.GeneratePasswordResetToken(model.UserName), model.NewPassword))
         {
             return(Content("重置密码成功!"));
         }
         else
         {
             return(Content("重置密码错误!"));
         }
     }
     return(Content("坏小孩"));
 }
コード例 #3
0
        public JsonResult ResetPwd(int?id)
        {
            ResetPwdModel resetPwdModel = null;

            if (!IsSafe())
            {
                resetPwdModel = new ResetPwdModel()
                {
                    Code    = 519,
                    Message = "管理员账号状态存在异常,请联系运维人员"
                };
                return(Json(resetPwdModel));
            }

            var admin = _context.Admin.FirstOrDefault(a => a.Id == id);

            if (admin == null)
            {
                resetPwdModel = new ResetPwdModel()
                {
                    Code    = 518,
                    Message = "该用户状态异常,请联系运维人员"
                };
                return(Json(resetPwdModel));
            }

            string password     = PassWordHelper.GenerateCheckCode(8);
            string database_pwd = PassWordHelper.Md532Salt(password, admin.LoginAccount);

            admin.PassWord = database_pwd;
            _context.Update(admin);
            _context.SaveChanges();

            resetPwdModel = new ResetPwdModel()
            {
                Code    = 520,
                Message = $"密码重置成功,该管理员密码为{password},请妥善保管",
                NewPwd  = database_pwd
            };
            return(Json(resetPwdModel));
        }
コード例 #4
0
        /// <summary>
        /// 重置密码
        /// </summary>
        public ActionResult ResetPwd()
        {
            string v = WebHelper.GetQueryString("v");
            //解密字符串
            string realV;

            try
            {
                realV = MallUtils.AESDecrypt(v);
            }
            catch (Exception ex)
            {
                //如果v来自邮件,那么需要url解码
                realV = MallUtils.AESDecrypt(WebHelper.UrlDecode(v));
            }

            //数组第一项为uid,第二项为验证时间,第三项为随机值
            string[] result = StringHelper.SplitString(realV);
            if (result.Length != 3)
            {
                return(HttpNotFound());
            }

            int      uid  = TypeHelper.StringToInt(result[0]);
            DateTime time = TypeHelper.StringToDateTime(result[1]);

            PartUserInfo partUserInfo = Users.GetPartUserById(uid);

            if (partUserInfo == null)
            {
                return(PromptView("用户不存在"));
            }
            //判断验证时间是否过时
            if (DateTime.Now.AddMinutes(-30) > time)
            {
                return(PromptView("此链接已经失效,请重新验证"));
            }

            //get请求
            if (WebHelper.IsGet())
            {
                ResetPwdModel model = new ResetPwdModel();
                model.V = v;
                return(View(model));
            }

            //ajax请求
            string password   = WebHelper.GetFormString("password");
            string confirmPwd = WebHelper.GetFormString("confirmPwd");

            StringBuilder errorList = new StringBuilder("[");

            //验证
            if (string.IsNullOrWhiteSpace(password))
            {
                errorList.AppendFormat("{0}\"key\":\"{1}\",\"msg\":\"{2}\"{3},", "{", "password", "密码不能为空", "}");
            }
            else if (password.Length < 4 || password.Length > 32)
            {
                errorList.AppendFormat("{0}\"key\":\"{1}\",\"msg\":\"{2}\"{3},", "{", "password", "密码必须大于3且不大于32个字符", "}");
            }
            else if (password != confirmPwd)
            {
                errorList.AppendFormat("{0}\"key\":\"{1}\",\"msg\":\"{2}\"{3},", "{", "confirmPwd", "两次输入的密码不一样", "}");
            }

            if (errorList.Length == 1)
            {
                //生成用户新密码
                string p = Users.CreateUserPassword(password, partUserInfo.Salt);
                //设置用户新密码
                Users.UpdateUserPasswordByUid(uid, p);
                //清空当前用户信息
                WebHelper.DeleteCookie("bma");
                Sessions.RemoverSession(WorkContext.Sid);
                OnlineUsers.DeleteOnlineUserBySid(WorkContext.Sid);

                return(AjaxResult("success", Url.Action("login")));
            }
            else
            {
                return(AjaxResult("error", errorList.Remove(errorList.Length - 1, 1).Append("]").ToString(), true));
            }
        }