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)); }
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("坏小孩")); }
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)); }
/// <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)); } }