2

Web サイト フォルダーに静的ファイルがありますが、すべてのファイルのアクセス許可を確認する必要があります。そのために HttpModule を使用することにしました。

ASP.NET はすべての http 要求を受け取り (私はワイルドカード マッピングを使用しました)、

アルゴリズムは次のとおりです。

  1. HttpModule がリクエストを受け取る
  2. HttpModule はパーミッションをチェックします
  3. アクセスが拒否された場合、答えは「禁止」です。すべて問題なければ、httpModule のメソッドはそのまま戻ります。
  4. DefaultHttpHandler は、静的ファイルの要求を処理するために自動的に使用されます

問題は、DefaultHttpHandler が十分に効果的でないことです (ファイル キャッシュを使用しないなど)。しかし、IIS (ASP.NET なし) は静的ファイルを非常にうまく処理します。

私が望むのは、チェック後に IIS に静的ファイルを提供させることだけです。それを実装する方法はありますか?

4

2 に答える 2

2

IIS7 を使用している場合、はい、非常に簡単です。統合モードでは、すべての要求がマネージド パイプラインを通過します。IIS にファイルを提供させますが、チェックを行うために HttpHandler を追加します。または、ASP.NET が提供する認証方法のいずれかを使用できます。

于 2009-06-13T12:26:32.350 に答える
1

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

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

ファイルを提供する前に承認を含めるように拡張するのは簡単です。

于 2010-02-18T17:15:04.790 に答える