3

ユーザーに新しいパスワードを電子メールで送信するセキュリティ ツールがあります。実稼働メール モジュール (所有しておらず、変更したくない) は、しきい値が VERBOSE の場合、Log4Net を使用して HTML メール メッセージ本文全体をログに記録します。電子メールにはドメイン ユーザーのパスワードがクリア テキストで含まれているため、アペンダーに到達する前にログ メッセージからパスワードを削除したいと考えています。

Log4Net スタックにオブジェクトを一時的に挿入して、LoggingEvent メッセージを検索し、見つかったパスワードをマスクするように変更する方法はありますか? オブジェクトを挿入し、電子メール モジュールを呼び出してから、オブジェクトを削除したいと思います。

4

7 に答える 7

2

おそらくパターンコンバーターを書くでしょう。ここで例を見つけることができます。実装は次のようになります。

protected override void Convert(TextWriter writer, LoggingEvent loggingEvent)
{
    string msg = loggingEvent.RenderedMessage;
    // remove the password if there is any
    writer.Write(msg);
}
于 2010-10-06T10:52:35.253 に答える
0

Unity アプリケーション ブロック メソッド インターセプターを使用して、log4net への呼び出しをインターセプトすることができます。または、カスタム log4net アペンダーを作成することもできます。

于 2010-10-05T18:32:16.127 に答える
-4

log4net はオープン ソースなので、変更できます。

于 2010-10-05T18:09:53.760 に答える