Pour des raisons assez évidentes, j'aimerais identifier la meilleure façon de supprimer l'Auth_Password de la capture d'ELMAH. Quelle est la meilleure façon de le faire? P>
4 Réponses :
Puisque Elmah est open source, j'ai modifié le fichier error.cs comme. À l'intérieur du CUNStructeur d'erreur de ERROR.CS (À propos de la ligne 126), j'ai ajouté ceci:
_serverVariables.Remove(AUTH_PASSWORD); //AUTH_PASSWORD = const string = "AUTH_PASSWORD" AND SET ELSEWHERE
Autant que j'aimerais aussi, je me sentirais trop bon marché.
J'ai réussi à le faire sans modifier la source elmah: http://www.kipusoep.nl/2012/01/06/12/01/06/umbraco-elmah-with-sql-ce-4-0-Av-Authentication- Part-2 / P>
Je viens de rencontrer la même chose; Résolu en utilisant ce qui suit: et mis à jour le module d'erreurLog dans web.config, configuration / systemwebserver / modules à: p> Cela résoudra le problème sans un deuxième tour. Pas un problème si le mot de passe est utilisé ultérieurement à partir de la demande entrante car la source elmah montre qu'il prend une copie. P> Je me rends compte que cela est un peu en retard en réponse à ce qui précède, mais le problème semble avoir été corrigé dans l'elmah actuel pour ASP, et non pour ELMAH.MVC Nuget Package. P> P>
Je n'ai pas pu obtenir la réponse de @Dominic Birch, car le contexte est réadien. Au lieu de cela, j'ai dérivé duranglog (dans mon cas, mysqlerrorlog) et y a-t-il fait:
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); } }