私はthis質問にフックしたいと思いますが、多分別の角度から言い換えてください。ASP.NET Webアプリケーションで待機操作を実行していますか?
不正行為の防止のため、一定のログイン試行が間違っていると訪問者をブロックしたいと考えています。この時点で私は実際の関数呼び出しをloginにラップするマネージャクラスを持っています。ビジターがブロックされているため、実際のログインメソッドが呼び出されない場合、マネージャーは例外をスローします。ここまでは順調ですね。
例外投げの部分をThread.Sleep
に変更したいと思います。しかしこれはオプションではありません。これはサーバーへの他のリクエストをブロックするためです。 easyこのシナリオではおそらくasync
waitコマンドを使用するか、おそらくF#
を使用していますか?
現在のコード:
class Manager {
void Execute(Action action) {
if(user.IsBlocked)
throw new BlockedException();
else
action();
}
}
優先コード:
class Manager {
void Execute(Action action) {
if(user.IsBlocked)
//Wait for xxx minutes
action();
}
}
単純にブロックの期間を同じデータベースに保存して、ユーザーの資格情報を保存しないのはなぜですか? –