2011-08-07 20 views
0

私はIIS6のためのhttpスニファの種類を構築しています。そのためには、ISAPIフィルタとISAPI拡張の両方を使用しています。 拡張 - 要求を読み取る。 フィルタ - 応答を読み取る。ISAPIフィルタの応答にISAPI拡張の要求をリンクする方法

拡張機能を使用している理由は、ユーザーにIIS5互換モードに変更させたくないため、SF_NOTIFY_READ_RAW_DATAに登録できないということです。

事は、私が応答を読んだとき、私はリクエストにリンクしたいので、私が要求に一意の識別子を与え、その応答を読んだときにそれを使用する必要があり、です。

私はSF_REQ_GET_CONNIDでてServerSupportFunctionを呼び出すためのオプションがあるように使用することを読みましたが、それはIIS6ではサポートされていません。おそらく仕事だろうが、私は実現することを望んだほどエレガントなようです -

はまた、私は可能な解決策は、顧客のヘッダを付加し、それを取り除くためにであることを読みました。

フィルタに接続ID(EXTENSION_CONTROL_BLOCKでCONNID)を取得する方法はありますか?

は、私は数ヶ月前に同じ問題を抱えていたあなたの応答、 Sagiv

答えて

1

を感謝しています。

私はこの問題を解決するには、以下のなかった:HttpFilterProc(ISAPIフィルタ)で

  1. 私は、通知SF_NOTIFY_PREPROC_HEADERSを探しました。
  2. 私は自分のヘッダに要求にGUIDを挿入しました。
  3. HttpExtensionProc(ISAPIエクステンション)では、私のヘッダーを読み、GUIDを抽出します。
  4. その後、リクエストの内容を読み、GUIDで接続しました。 OnSendRawData(ISAPIフィルタ)で
  5. は、私が(チャンク)レスポンスの内容を読み、もう一度GUIDとそれを接続します。

この方法では、(拡張子からの)リクエストコンテンツと(フィルタからの)レスポンスコンテンツがリンクされています。

関連する問題