Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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)));
        }