質問

非常に明白な理由から、ELMAH によってキャプチャされる Auth_Password を削除する最良の方法を特定したいと思います。そうするための最善の方法は何でしょうか?

役に立ちましたか?

解決

ELMAHは、オープンソースであるため、

、私はError.CSはそうのようなファイル改変しました。 (ライン126程度)Error.CSのエラーcunstructorの内部では、私はこれを追加します:

_serverVariables.Remove(AUTH_PASSWORD);
//AUTH_PASSWORD = const string = "AUTH_PASSWORD" AND SET ELSEWHERE

他のヒント

ELMAH ソースを変更せずにこれを行うことができました。 http://www.kipusoep.nl/2012/01/06/umbraco-elmah-with-sql-ce-4-0-and-authentication-part-2/

私はちょうど同じことに遭遇しました。以下を使用して解決ます:

using Elmah;
using ElmahErrorLogModule = Elmah.ErrorLogModule;

namespace XXXX
{
    public class ErrorLogModule : ElmahErrorLogModule
    {
        protected override void OnErrorSignaled(object sender, ErrorSignalEventArgs args)
        {
            // Remove password from the server variables being serialized
            args.Context.Request.ServerVariables.Remove("AUTH_PASSWORD");

            //TODO: remove session id, cookie too?

            base.OnErrorSignaled(sender, args);
        }
    }
}

とにweb.configファイル、設定/ system.webserver /モジュール内のErrorLogモジュールを更新します:

<add name="ErrorLog" type="XXXX.ErrorLogModule" preCondition="managedHandler" />

これは、第二ラウンドトリップせずに問題を解決します。パスワードは、その後ELMAHソースとして着信要求から使用されている場合は問題ありませんが、それはコピーをとる示します。

私は、これは少し遅れて上記に対応している実感が、問題は、ASPのために、現在のELMAHで修正、およびないElmah.Mvc nugetパッケージのためにされているようだ。

私は、コンテキストが読み取り専用であるため、@Dominicバーチの答えの作業を取得することができませんでした。代わりに、私は(私の場合、MySqlErrorLog中)のErrorLog由来し、そこにそれをやった。

public class FilteringMySqlErrorLog : MySqlErrorLog
{
    static readonly string[] _stripSearch = new[] { "password", "cardnumber", "ccnumber", "cvv" };

    public FilteringMySqlErrorLog(IDictionary config)
        : base(config)
    { }

    public override string Log(Error error)
    {
        error.ServerVariables.Remove("AUTH_PASSWORD");

        foreach (string key in error.Form.AllKeys.ToList())
        {
            if (_stripSearch.Any(x => key.IndexOf(x, StringComparison.InvariantCultureIgnoreCase) != -1))
                error.Form.Remove(key);
        }

        return base.Log(error);
    }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top