public async Task <IdentityResult> ChangePassword(ChangePasswordInputDto model) { var user = await GetCurrentUserAsync(); if (user == null) { return(IdentityResult.Failed(new IdentityError[] { new IdentityError() { Code = "User", Description = "Not Found User" } })); } var passwordValidator = new PasswordValidator <User>(); var result = await passwordValidator.ValidateAsync(_userManager, user, model.NewPassword); if (result.Succeeded) { var changePasswordResult = await _userManager.ChangePasswordAsync(user, model.OldPassword, model.NewPassword); return(changePasswordResult); } else { return(result); } }
public async Task <IActionResult> ChangePasswordAsync(Guid userId, [FromBody] ChangePasswordInputDto dto) { var user = await _userManager.Users.FirstOrDefaultAsync(u => u.Id == userId); if (user == null) { return(new ApiResult(ApiResultType.Error, "用户不存在或已经删除")); } if (user.UserName == AdminConsts.AdminName) { return(new ApiResult(ApiResultType.Error, "超级管理员请通过个人信息入口修改密码")); } var result = await _userManager.RemovePasswordAsync(user); if (!result.Succeeded) { return(new ApiResult(ApiResultType.Error, result.Errors.First().Description)); } result = await _userManager.AddPasswordAsync(user, dto.NewPassword.Trim()); return(result.Succeeded ? ApiResult.Ok : new ApiResult(ApiResultType.Error, result.Errors.First().Description)); }
public async Task <IActionResult> ChangePassword([FromBody] ChangePasswordInputDto model) { if (!ModelState.IsValid) { return(BadRequest(ModelState.Values.Select(x => x.Errors.FirstOrDefault().ErrorMessage))); } IdentityResult result = await _manageService.ChangePassword(model); if (result.Succeeded) { return(Ok(result)); } return(BadRequest(result.Errors.Select(x => x.Description))); }