統合モードの IIS 7.5 で実行される .NET 4.0、ASP.NET MVC 3 イントラネット アプリケーションを構築しています。Windows 認証は、Web サイトへのアクセスを制御するために使用されます。Windows 認証モジュールが有効になり、他のすべての認証モジュールが無効になります。
現在、ユーザーが不適切な資格情報を提供すると、Windows 認証モジュールは資格情報を正しく拒否し、ログイン プロンプトを再表示します。これが 3 回行われた後、標準の .NET 401 Unauthorized Access ページが表示されます。これは予想され、望ましいことです。
私の目標:失敗した認証試行の詳細を独自のカスタム イベント ログに記録できるようにしたいと考えています。特に、ログイン試行で使用されたユーザー名をキャプチャします。(セキュリティ上の理由から、パスワードを取得することはおそらく不可能であることを認めます。)
私の目標は可能ですか?
私はすでに動作する IHttpModule モジュールを構築し、次のようにイベント ハンドラーとしてWindowsAuthenticationModuleに追加しました。
myWindowsAuthenticationModule.Authenticate += WindowsAuthentication_Authenticate;
しかし、ログイン試行が失敗した場合、おそらく WindowsAuthenticationModule がログインが失敗したとすでに判断しているため、私のモジュールを呼び出す意味がないため、私のコードは呼び出されません。私のモジュールは、ログイン試行が成功した後に呼び出されるため、イベント ハンドラーが適切に設定されていることは確かです。
私の知る限りでは、WindowsAuthenticationModule は認証が失敗したときに発生するイベントを公開していないため、そのオプションは無効になっています。
何か案は?それとも、解決策のない木を吠えていますか?