示例#1
0
        public void VerifyPasswordTest(string password)
        {
            var hash     = _passwordProvider.CreatePasswordHash(password);
            var isVerify = _passwordProvider.VerifyPasswordHash(password, hash);

            Assert.IsTrue(isVerify);
        }
示例#2
0
        public async Task ChangePassword(string email, string oldPassword, string newPassword, string retypedNewPassword)
        {
            var user = await UserValidation(email);

            var computedPassword = _passwordProvider.CreatePasswordHash(oldPassword, user.PasswordSalt);

            var userPassword = ComputedPassword.Create(user.PasswordHash, user.PasswordSalt);

            if (userPassword != computedPassword)
            {
                throw new ArgumentException("The given old password does not fit to the current user password");
            }

            if (newPassword != retypedNewPassword)
            {
                throw new ArgumentException("The new password is different than retyped new password");
            }

            SetPasswordForUser(user, newPassword);

            UserRepository.Update(user);
            await _unitOfWork.CompleteAsync();
        }