区切りで引数として使用します。あとは、あらかじめ設定されたファイルへ物理パスがマップされる仕組みです。利用すればヘッダの編集が容易そうであったということからです。フィルタを作るのは初めてだったので、いろいろと実験してみました。リクエストがひとつのファイルに終結するようにしてみました。処理されるかを調べてみました。すると...?あらら...、ファイルのダウンロード要求になってしまいました。スクリプトが混ざった形でダウンロードできました。処理がなされるかが決定されるようです。ドキュメントが表示されました。中で指定するとどうなるか...。要求を出してみると...。スクリプトが処理されました。拡張子さえ正しければ、物理パスへのマップ時の拡張子はどうでもいいようですね。ヘッダを追加してみることにします。編集して、ひとつだけヘッダを登録するようなプログラムを作ってみることにします。コレクションをつかってこのヘッダを見つけることは出来ないようでした。つけないといけないとのこと。最後につけない特別な文字によって、簡単に要求処理が出来るように工夫されているそうです。見ることが出来ました。いう名前になっていました。セットしたはずの値が表示されません。やってみましたけどうまくいかないようです。ヘッダにはちゃんと値も含んだヘッダ情報が表示されていました。何とかすれば大丈夫なのでしょう。つけてみたら例外発生/爆。やってみましたけどうまくいきません。2つほど登録すれば何かわかるかも、と思いましたが結果は同じでした。関数をいじってみました。つきのヘッダ名をわたしてヘッダ情報を取得しては見るのですけど...。こちらもうまく行きませんでした。試してみましたけどダメです。正常に取得することが出来たのですけど。読み込めることがわかりました。大文字小文字は関係ないようです。はじまってアンダーバーを含まないものなら大丈夫そう...。取得してみたら、見事値を取得できました。わたるころにはすっかり形が変わってしまっていて気づきませんでしたけど、この段階で扱えるヘッダ名はまったくもって、サーバに渡されたそのままの形のヘッダ名だということがわかりました。読み込みの方法がわかったので、書き込みのほうもなんとなく察しがつきました。関数で書き換えてみることにしました。値が書き換わりました。いう値が設定されました。使うと、同一名称のヘッダがあった場合は、新しい値で上書きされます。区切りで追加されるようです。関数を使用する際に、存在しないヘッダを取得しようとすると、バッファに何もコピーされないようです。場合、確保されたばかりのメモリは初期化されていませんので、そのままだと思わぬエラーを招く恐れがあります。代入しておきましょう。これで何もロードされなくても、空文字として利用することが出来ます。必要なバッファサイズはヘッダに格納されている文字数よりもひとつ多いサイズです。バッファのサイズがヘッダの値以下の場合は、途中までとかではなくまったくコピーされなくなるようです。入りますので、実際の文字数よりもひとつ大きなバッファが必要です。関数のバッファサイズに指定した値には、その余分なサイズを含めます。ハンドラの処理順番は...いまいちよくわからないので、ハンドラの処理順番を調べてみました。以外を実装した場合、次のようになりました。GetFilterVersionOnPreprocHeadersOnUrlMapOnAuthenticationこれらは、それぞれのハンドラからファイル出力をすることによって順番を見定めたものです。以降はなにも現れなくなります。続いて、OnLogOnSendRawDataというようにもなりました。変更が反映されていました。方を取得することが出来ます。値を変更すると、その後の環境変数にどのような影響がでるのかを簡単に調べてみました。行くようになりました。ときとは違って、変更先の拡張子によって処理が決まるようです。処理だけで簡単に実現できそうですね。変更したときに、その周りのヘッダの変化は環境変数にしっかりと表れています。登録しなす必要がありそうです。用いてアクセスするときにも有効なので注意が必要です。いうヘッダがついているかどうかで判断できるそうです。ヘッダが付加されるそうです。確認できませんでしたけど...。簡易フィルタを作ってみるさて、実現性が見えてきたので、簡単なフィルタを作って、このレポートを終わりにしようと思います。非常に単純なフィルタを作ります。ヘッダーへ格納します。ヘッダーへコピーします。設定しておくことにします。ない場合は、何もしません。設定するようにしてみます。利用して、フィルタオブジェクトを作成します。処理するように設定します。今回はそのほかのフィルタは使用しません。次のようなコードを追加します。SF_STATUS_REQ_NEXT_NOTIFICATION;}なにやら長々と醜いプログラムになってしまいましたけど、まぁ、サンプルということで...。本来なら関数とかに事細かに分けるところなのですけど、そうするとここでは逆に見にくくなってしまうのであえて長々と書いてみました。このソースはまだチェックが甘いですので気をつけてください。ファイル名がなかったりすると例外エラーが発生します。いうファイルで出来上がっているものとします。サイトのプロパティを表示します。フィルタをフルパスで指定します。