Table of Contents

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

ipAddress string

Die 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

ipAddress string

Die IP-Adresse des Clients.

Returns

bool

true, wenn die IP gesperrt ist; andernfalls false.

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

ipAddress string

Die IP-Adresse des Clients.

RecordSuccessfulAttempt(string)

Entfernt alle aufgezeichneten Fehlversuche für eine IP-Adresse nach erfolgreichem Login.

public void RecordSuccessfulAttempt(string ipAddress)

Parameters

ipAddress string

Die IP-Adresse des Clients.