/// <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);
        }
示例#2
0
        /// <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);
        }