1

私のasp.netアプリでこれら2つの例外のいずれかが発生したときに、ELMAHのフィルターを指定することに興味があります。

  1. 例外メッセージに「これは無効な Web リソース要求です」が含まれています
  2. 例外メッセージに「潜在的に危険な...値...」が含まれています

web.config で以下を使用しましたが、最初のフィルターとして配置された場合は無効な websresource リクエストのみをフィルター処理しますが、2 番目のフィルターとして配置された場合は適用されません。構成ファイルの「errorfilter」要素は次のとおりです。これらの両方の条件を Web 構成で指定するにはどうすればよいですか? また、BaseException.Message または Exception.Message を使用する必要がありますか?

    <errorFilter>
    <test>
     <or>
       <and>
        <regex binding="Exception.Message" pattern="(?ix: \b potentially \b.+?\b  
            dangerous \b.+?\b value \b.+?\b detected \b.+?\b client \b )" />
      </and>  
    </or>
    <or>
      <and>
          <equal binding="BaseException.Message" value="This is an invalid webresource
          request." type="String" />
      </and>
    </or>
    </test>   
    </errorFilter>
4

1 に答える 1

2

要素はtest子要素を1つだけ持つことができます。その下には2つのor条件があるため、最初の条件のみが適用されます。または2つの条件の正しい方法は、次のように、それらを1つのor要素の下にグループ化することtestです。

<errorFilter>
  <test>
    <or>
        <regex binding="Exception.Message" 
               pattern="(?ix: \b potentially \b.+?\b  
                        dangerous \b.+?\b value \b.+?\b 
                        detected \b.+?\b client \b )" />
        <equal binding="BaseException.Message" 
               value="This is an invalid webresource request." 
               type="String" />
    </or>
  </test>
</errorFilter>
于 2012-07-07T12:09:12.617 に答える