public async Task <bool> IsAuthenticationAttemptValidAsync( string userAreaCode, string username, string ipAddress, DateTime dateNow, int?ipAddressRateLimitQuantity, int?ipAddressRateLimitWindowInSeconds, int?usernameRateLimitQuantity, int?usernameRateLimitWindowInSeconds ) { var isValid = await _entityFrameworkSqlExecutor.ExecuteScalarAsync <int>(_dbContext, "Cofoundry.UserAuthenticationFailLog_IsAttemptValid", new SqlParameter("UserAreaCode", userAreaCode), new SqlParameter("Username", username), new SqlParameter("IPAddress", ipAddress), new SqlParameter("DateNow", dateNow), new SqlParameter("IPAddressRateLimitQuantity", ipAddressRateLimitQuantity), new SqlParameter("IPAddressRateLimitWindowInSeconds", ipAddressRateLimitWindowInSeconds), new SqlParameter("UsernameRateLimitQuantity", usernameRateLimitQuantity), new SqlParameter("UsernameRateLimitWindowInSeconds", usernameRateLimitWindowInSeconds) ); return(isValid == 1); }
public async Task <bool> ExecuteAsync(HasExceededMaxLoginAttemptsQuery query, IExecutionContext executionContext) { var connectionInfo = _clientConnectionService.GetConnectionInfo(); var isValid = await _sqlExecutor.ExecuteScalarAsync <int>("Cofoundry.FailedAuthticationAttempt_IsAttemptValid", new SqlParameter("UserAreaCode", query.UserAreaCode), new SqlParameter("Username", query.Username.Trim()), new SqlParameter("IPAddress", connectionInfo.IPAddress), new SqlParameter("DateTimeNow", executionContext.ExecutionDate), new SqlParameter("MaxIPAttempts", _authenticationSettings.MaxIPAttempts), new SqlParameter("MaxUsernameAttempts", _authenticationSettings.MaxUsernameAttempts), new SqlParameter("MaxIPAttemptsBoundaryInMinutes", _authenticationSettings.MaxIPAttemptsBoundaryInMinutes), new SqlParameter("MaxUsernameAttemptsBoundaryInMinutes", _authenticationSettings.MaxUsernameAttemptsBoundaryInMinutes) ); return(isValid != 1); }