internal async Task ResetUser(UserResetModel model)
        {
            var user = await this.CheckAuthorityAndGetUser(model.Username);

            foreach (var validator in this.userManager.PasswordValidators)
            {
                var result = await validator.ValidateAsync(this.userManager, user, model.Password);

                if (!result.Succeeded)
                {
                    throw new PasswordChangeException(result.Errors.First().Description);
                }
            }

            var hash = this.userManager.PasswordHasher.HashPassword(user, model.Password);

            user.PasswordHash = hash;
            await this.userManager.UpdateAsync(user);
        }
示例#2
0
        public async Task <IActionResult> ResetUser([FromBody] UserResetModel model)
        {
            try
            {
                await this.service.ResetUser(model);
            }
            catch (NotFoundException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch (NotAuthorizedException)
            {
                return(Unauthorized());
            }
            catch (PasswordChangeException e)
            {
                return(BadRequest(e.Message));
            }

            return(Ok());
        }