Question

Je voudrais m'accrocher cette Question, cependant, peut-être le reformuler sous un angle différent.

À des fins anti-fraude, je voudrais bloquer les visiteurs après une certaine quantité de tentatives de connexion incorrectes. À ce stade, j'ai une classe Manager qui enveloppe l'appel de fonction réel à la connexion. Le gestionnaire lance une exception si un visiteur est bloqué et donc la méthode de connexion réelle n'est jamais appelée. Jusqu'ici tout va bien.

Je voudrais maintenant changer la pièce de lancer d'exception en un Thread.Sleep genre de chose. Ce n'est pas une option cependant car cela bloquera d'autres demandes au serveur. Y'a-t-il un facile Alternative pour ce scénario peut-être en utilisant certains async attendre la commande ou peut-être utiliser F#?

Code actuel:

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

Code préféré:

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


        action();
    }
}

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top