/// <summary> /// Registers a password failure against specified user account. If password failure count exceeds "password failures before lock out", then user /// has entered their password incorrectly too many times and will be locked out. /// </summary> /// <param name="user">User details.</param> private void RegisterPasswordFailure(User user) { // Get password failure before lockout count int passwordFailuresBeforeLockOut = _authenticationConfigurationService.GetPasswordFailuresBeforeLockOut(user.TenantId); // Increment password failures user.LastPasswordFailure = DateTime.UtcNow; user.PasswordFailures = user.PasswordFailures + 1; user.LockedOut = user.PasswordFailures > passwordFailuresBeforeLockOut; // Update user _userRepository.UpdateUser(user); }
/// <summary> /// Registers a password failure against specified user account. If password failure count exceeds "password failures before lock out", then user /// has entered their password incorrectly too many times and will be locked out. /// </summary> private async Task RegisterPasswordFailureAsync(long tenantId, string email, AuthenticationState state) { // Get password failure before lockout count int passwordFailuresBeforeLockOut = _authenticationConfigurationService.GetPasswordFailuresBeforeLockOut(tenantId); // Increment password failures state.LastPasswordFailure = DateTime.UtcNow; state.PasswordFailures = state.PasswordFailures + 1; state.LockedOut = state.PasswordFailures > passwordFailuresBeforeLockOut; // Update user await _authenticationRepository.UpdateAuthenticationStateAsync(tenantId, email, state); }