public bool AreValidUserCrendentials(string userName, string password) { var user = _userService.GetUserByUserName(userName); var hashedPassword = _passwordService.CalculateHashedPassword(password, user.Salt); return(user.Password == hashedPassword); }
public User ChangeUserPassword(User user, string newPassword) { if (_userPasswordHistoryService.IsPasswordUsedBefore(user.Id, newPassword)) { throw new PasswordUsedBeforeException("The password cannot same as previous 5 passwords"); } user.Salt = Guid.NewGuid().ToString(); user.Password = _passwordService.CalculateHashedPassword(newPassword, user.Salt); user.PasswordCreationTime = DateTime.Now; return(_userRepository.UpdateUser(user)); }
public bool IsPasswordUsedBefore(Guid userId, string password) { var passwordHistoryList = _userPasswordHistoryRepository.GetUserPreviousPasswordList(userId); foreach (var passwordHistory in passwordHistoryList) { if (_passwordService.CalculateHashedPassword(password, passwordHistory.Salt) == passwordHistory.Password) { return(true); } } return(false); }