Class RateLimitingService
- Namespace
- DataService.Server.Services
- Assembly
- DataService.Server.dll
Service zur Verwaltung von Loginversuchen pro IP-Adresse mit einfachem Rate-Limiting. Blockiert IPs temporär nach wiederholten Fehlversuchen.
public class RateLimitingService : IDisposable
- Inheritance
-
RateLimitingService
- Implements
- Inherited Members
Constructors
RateLimitingService()
Initialisiert eine neue Instanz des RateLimitingService. Startet einen periodischen Cleanup für veraltete Einträge.
public RateLimitingService()
Methods
Dispose()
Beendet interne Ressourcen, z. B. den Cleanup-Timer.
public void Dispose()
GetCooldownRemaining(string)
Gibt die verbleibende Sperrzeit für eine IP-Adresse zurück, sofern blockiert.
public TimeSpan? GetCooldownRemaining(string ipAddress)
Parameters
ipAddressstringDie IP-Adresse des Clients.
Returns
- TimeSpan?
Restliche Sperrzeit oder
null, wenn nicht blockiert.
IsRateLimited(string)
Überprüft, ob eine IP-Adresse derzeit gesperrt ist.
public bool IsRateLimited(string ipAddress)
Parameters
ipAddressstringDie IP-Adresse des Clients.
Returns
- bool
true, wenn die IP gesperrt ist; andernfallsfalse.
RecordFailedAttempt(string)
Zeichnet einen fehlgeschlagenen Loginversuch für die angegebene IP-Adresse auf. Bei 5 oder mehr Fehlversuchen wird ein exponentielles Cooldown aktiviert.
public void RecordFailedAttempt(string ipAddress)
Parameters
ipAddressstringDie IP-Adresse des Clients.
RecordSuccessfulAttempt(string)
Entfernt alle aufgezeichneten Fehlversuche für eine IP-Adresse nach erfolgreichem Login.
public void RecordSuccessfulAttempt(string ipAddress)
Parameters
ipAddressstringDie IP-Adresse des Clients.