abp修改当前用户密码


        /// <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);
        }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM