Фильтр HttpRequestValidationException Elmah Журналы по IP-адресу - PullRequest
1 голос
/ 19 июля 2011

Я добавил это на страницу global.asax, чтобы помочь мне отфильтровывать ошибки от входа в elmah, но это фильтрует только любую ошибку исключения, которая содержит исключение HttpRequestValidationException. Я получаю эти ошибки от сканирования McAfee. Мне было интересно, если есть способ проверить IP-адрес, если IP-адрес совпадает с адресом McAfee, то не регистрировать ошибку. Я пытался сделать:

void ErrorLog_Filtering(object sender, ExceptionFilterEventArgs e)
{
    if (Server.HtmlEncode(Request.UserHostAddress) == "173.15.183.122" 
        && e.Exception.GetBaseException() is HttpRequestValidationException) {
        e.Dismiss();
    }
}

Это не работает для меня. Если есть способ получить IP-адрес, пожалуйста, дайте мне знать и какое пространство имен мне нужно добавить, чтобы он работал.

1 Ответ

2 голосов
/ 20 июля 2011

Я добавил это в свой файл web.config для проверки определенных IP-адресов, что поможет отфильтровать, какие ошибки я не хочу регистрировать в своей базе данных.

<elmah>
    <errorLog type="Elmah.SQLiteErrorLog, Elmah" connectionStringName="ELMAH.SQLite" />
    <security allowRemoteAccess="yes" />
    <errorFilter>
      <test>
        <and>
          <equal binding="HttpStatusCode" value="500" type="Int32" />
          <regex binding="Context.Request.ServerVariables['REMOTE_ADDR']" pattern="((165.193.42.(6[7-9]|7[0-9]|8[0-6]|13[1-9]|14[0-9]|150))|(161.69.30.(13[6-9]|1[4-5][0-9]|16[0-7]))|(64.14.3.(196|21[4-9]|22[0-9]))|(64.41.168.(24[2-9]|25[0-4]))|(216.35.7.(9[8-9]|1[0-1][0-9]|12[0-6]))|(64.41.140.(9[8-9]|10[0-7]))|(161.69.14.(13[6-9]|1[4-5][0-9]|16[0-7])))$" type="String" />
        </and>
      </test>
    </errorFilter>
</elmah>
...