/// <summary> /// 重置密码,响应前端的请求,构建一个简单的视图模型实例返回给前端 /// </summary> /// <param name="id"></param> /// <returns></returns> public IActionResult ResetUserPassword(string id) { var boVM = new ApplicationUserResetPasswordVM() { Id = id, Password = "", ConfirmPassword = "" }; return(PartialView("../../Views/ApplicationOrganization/ApplicationUser/_ResetUserPassword", boVM)); }
/// <summary> /// 处理重置密码的请求,并返回处理结果 /// </summary> /// <param name="boVM"></param> /// <returns></returns> public async Task <IActionResult> SaveResetUserPassword([Bind("Id,Password,ConfirmPassword")] ApplicationUserResetPasswordVM boVM) { var validateMessage = new ValidateMessage(); if (ModelState.IsValid) { var user = await _UserManager.FindByIdAsync(boVM.Id); // 获取重置密码的令牌 string resetToken = await _UserManager.GeneratePasswordResetTokenAsync(user); // 重置密码 await _UserManager.ResetPasswordAsync(user, resetToken, boVM.Password); validateMessage.IsOK = true; validateMessage.ValidateMessageItems.Add( new ValidateMessageItem { IsPropertyName = false, MessageName = "", Message = "密码重置成功,请关闭对话框。" }); return(Json(validateMessage)); } else { validateMessage.IsOK = false; var errCollection = from errKey in ModelState.Keys from errMessage in ModelState[errKey].Errors where ModelState[errKey].Errors.Count > 0 select(new { errKey, errMessage.ErrorMessage }); foreach (var errItem in errCollection) { var vmItem = new ValidateMessageItem() { IsPropertyName = true, MessageName = errItem.errKey, Message = errItem.ErrorMessage }; validateMessage.ValidateMessageItems.Add(vmItem); } return(Json(validateMessage)); } }