2009-06-12 22 views
2

ウェブサイトフォルダにstatiсファイルがありますが、すべてのファイルのアクセス許可を確認する必要があります。 私はその目的のためにHttpModuleを使うことに決めました。ASP.NETのHttpModuleで静的ファイルを処理する

ASP.NETはalgorithは、以下のすべてのHTTP要求(Iワイルドカードマッピングを使用)と

を受信:

  1. HttpModuleを要求
  2. HttpModuleをチェック権限
  3. 場合を受け取りますアクセスが拒否された場合、その回答は「禁止されています」。すべてがOKであれば、httpModuleのメソッドが返されます。
  4. DefaultHttpHandlerは自動的に静的ファイル

問題はDefaultHttpHandlerが(それは、などのファイルキャッシュを使用しない)十分に効果的ではないということであるため、要求を処理するために使用されます。しかし、IIS(ASP.NETなし)は非常に良い方法で静的ファイルを扱います。

私が確認したいのは、私のチェックの後にIISが静的ファイルを提供することだけです。 これを実装する方法はありますか?

答えて

2

IIS7を使用している場合は、非常に簡単です。統合モードでは、すべての要求が管理されたパイプラインを経由します。 IISがファイルを提供するようにしますが、チェックを行うためにHttpHandlerを追加します。または、ASP.NETが提供する承認方法の1つを使用することもできます。

+0

IIS6を使用している場合は、権限をチェックしてからファイルをストリーミングしないというソリューションが必要です。 – ScottE

+0

私は新しいプロジェクトでIIS6をもう一度扱わなくていいと思っています;) – chris166

+0

残念ながら私はIIS6を使用します – murad

1

IIS 6でファイルをストリーミングするために使用できるソリューションがあります。再開可能なダウンロード、クライアントサイドキャッシング(etag &の有効期限切れ)、サーバーサイドキャッシングなどのすべての優れた機能を備えています。

http://code.google.com/p/talifun-web/wiki/StaticFileHandler

ファイルをアップ提供する前に承認を含めるように拡張するのに十分な簡単なはずです。

関連する問題