/// <summary> /// 修改当前登陆用户密码 /// </summary> /// <returns></returns> [AbpAuthorize] public async Task ChangePassword(ChangePasswordInput input) { input.OldPassword = input.OldPassword.Trim(); input.NewPassword = input.NewPassword.Trim(); //判断旧密码是否正确 if (string.IsNullOrWhiteSpace(input.OldPassword) || string.IsNullOrWhiteSpace(input.NewPassword)) { throw new UserFriendlyException("密码不能为空"); } if (input.OldPassword == input.NewPassword) { throw new UserFriendlyException("新旧密码不能相同"); } //获取abp用户 var user = await _userManager.GetUserByIdAsync(AbpSession.UserId.Value); //判断新密码是否正确 var result = _passwordHasher.VerifyHashedPassword(user, user.Password, input.OldPassword); if (result == PasswordVerificationResult.Failed) { throw new UserFriendlyException("旧密码错误"); } //新密码hash var hash = _passwordHasher.HashPassword(user, input.NewPassword); user.Password = hash; await _userManager.UpdateAsync(user); }