Domanda

Vorrei agganciarmi questo Domanda, tuttavia forse lo riformula da un angolo diverso.

Per scopi anti -frode, vorrei bloccare i visitatori dopo una certa quantità di tentativi di accesso errati. A questo punto ho una classe di manager che avvolge la chiamata della funzione effettiva per l'accesso. Il gestore genera un'eccezione se un visitatore è bloccato e quindi il metodo di accesso effettivo non viene mai chiamato. Fin qui tutto bene.

Ora vorrei cambiare l'eccezione che lancia una parte Thread.Sleep un po 'di cosa. Questa non è un'opzione, tuttavia perché ciò bloccherà altre richieste al server. C'è un facile alternativa per questo scenario forse usando alcuni async Aspetta il comando o forse usando F#?

Codice corrente:

class Manager {
    void Execute(Action action) {
        if(user.IsBlocked)
            throw new BlockedException();
        else
            action();
    }
}

Codice preferito:

class Manager {
    void Execute(Action action) {
        if(user.IsBlocked)
            //Wait for xxx minutes


        action();
    }
}

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top