1

を使用して、ドライブを共有にマップWebDAVする各ユーザー (たとえば、データベースからのファイルなど) の動的コンテンツをロードすることは可能ですか?WebDAV

私が見たすべての WebDAV 実装は で仮想ディレクトリを使用し、IISユーザーがネットワーク ドライブをそのディレクトリにマップして、最終的に 2 つの間でファイル/フォルダを同期できるようにします。

可能であれば、WebDAVユーザーがドライブを仮想ディレクトリにマップできるようにするために使用したいのですが、ドライブをマップするためにのみ仮想ディレクトリを使用します。私はリクエストに応じHttpModuleて実行するセットアップを持っているので、ユーザーに基づいてどのファイルをロードする必要があるかを決定し、そこからマップされたドライブに仮想フォルダー構造を作成することを考えました。WebDAVHttpModule

WebDAV複数のユーザーがこのドライブにアクセスするので、仮想ディレクトリとユーザーのマップされたドライブの間でファイルを同期したくありません。アイデアはHttpModule、(リクエストから) ユーザーがいるフォルダーを検出し、それに応じてデータベースからファイルをロードするというものです。

これは可能ですか?または、これを達成する別の方法はありますか? WebDAVこれが意図したもの以外に使用されている可能性があることは認識していますが、ユーザーがこのようにドライブをマップし、Windows エクスプローラーからの要求を検出できるようにする他の方法があるかどうかはわかりませんでした。現在、テスト用に Windows 7 で IIS 7.5 と VB.NET を使用しています。また、最終的にはセキュリティ/認証を実装する必要があります。最初は基本的なレベルで機能させることを望んでいたので、これは覚えておくべきことの 1 つです。

アップデート:

拡張子が「.txt」のファイルを許可しないように Web.config に追加RequestFilteringしました。ファイルがマップされたローカル ドライブにコピーされないようにするためです (いくつかのテキスト ファイルを IIS の仮想ディレクトリにコピーしました)。しかし、そうではありませんでした - それらは常にマップされたドライブに表示されます。マップされたドライブに表示RequestFilteringされるファイルには実際には影響しないようですが、ファイルを開くことができないだけです。

WebDAV共有にマップされたドライブを持つために有効にする方法はありWebDAVますが、マップされたドライブ内のファイルを表示/コピーすることはできませんか? 両方の方法で同じように動作することを望みます。つまり、マップされたドライブにファイルをコピーするときに、ファイルを の仮想ディレクトリにコピーしないでくださいIIS。これらのリクエストをインターセプトし、ファイルを別の場所 (またはデータベース) にコピーしたいと考えています。

4

1 に答える 1

0

私が行った解決策は、上記の @ User629926 によって提供されたリンクからプロジェクトをダウンロードし、そのプロジェクトのロジックに従うことでした。HttpModulesこのプロジェクトは、 &HttpHandlersを使用してリクエストをインターセプトし、応答を動的に構築する方法を明確に示しWebDAVています。これにより、Windows エクスプローラーでバックエンド SQL データを表示できます。

于 2012-10-22T13:15:57.907 に答える