MS ミニリダイレクタでカスタム WebDAV サーバーを動作させる方法

MS ミニリダイレクタでカスタム WebDAV サーバーを動作させる方法

データベースからユーザーを認証し、データベースのレコードに基づいて仮想ファイル システムを提供するカスタム WebDAV サーバーを作成しました。サード パーティの WebDAV クライアントでは正常に動作しますが、ドライブを http の場所にマッピングするときに Windows 組み込みのミニ リダイレクタでは動作しません。

最も奇妙なことは、サーバーを作成した開発用 PC では問題なく接続できるのに、サーバーにアクセスしようとする他のコンピューターはミニ リダイレクターとの接続に失敗するということです。

Fiddler を使用してネットワーク トラフィックを分析しましたが、すべて正常に見えます。ドライブをマップしようとすると、OPTIONS ヘッダーが送信され、サーバーは 200 OK で応答します。次に、ミニ リダイレクターは、深さ 0 の PROPFIND メソッドを送信します。サーバーは 401 未承認で応答します。これにより、ユーザーとパスワードのログイン ダイアログが表示されます。パスワードを入力すると、新しい PROPFIND 要求が送信されますが、今回は承認ヘッダーが付いています。すべて正常に動作しているようで、サーバーはログイン資格情報を受け入れ、ルート ディレクトリへの "HREF" を含む 207 マルチステータス応答で応答します。この時点で、ミニ リダイレクターはログイン プロンプトを再度表示し、合計 3 回表示した後、サーバーが見つからないというエラーで接続に失敗します。奇妙なのは、サーバーが見つかり、Fiddler で確認でき、サーバーが期待どおりに応答していることです。

他のすべてのサードパーティ WebDAV クライアントは、私のサーバーと同じようなやり取りを行い、接続してディレクトリ リストを問題なく表示します。失敗するのはミニ リダイレクターだけです。そして、上で述べたように、ミニ リダイレクターを使用した開発マシンでは完璧に動作します (ただし、接続先の IIS 7.5 サーバーは開発マシン上にはありません)。他のすべてのコンピューターは接続に失敗します。レジストリ ハックを使用して、安全でない HTTP サイトで基本認証を許可するようにしました。問題がそれである場合に備えて、SSL 証明書を使用してサーバーを安全な HTTPS サイトに移動しましたが、それでも動作しません。誰かアイデアをお持ちですか。私のコードは問題ないようで、サーバーはミニ リダイレクターの要求に正常に応答しているように見えるため、これはサーバーの IIS 7.5 セットアップか、開発マシンを除く他のすべてのクライアント マシンの設定に関係しているのではないかと考えています。他のすべてのクライアントの場合のように、207 マルチステータス応答の後にドライブをマップしないだけです。

どなたか助けていただければ幸いです。困ったことに、ミニ リダイレクタが最も動作しにくいと予想していたため、他のすべてのクライアントでテストする前に、まず開発マシンで動作するようにしました。そのため、他のコンピューターで接続しようとして失敗しているのがわかるまで、問題ないと思っていましたが、ミニ リダイレクタでのみ失敗しました。残念ながら、ミニ リダイレクタは私の潜在的なクライアントにとって最も使いやすいため、ミニ リダイレクタで動作することが不可欠です。Fiddler からの応答/要求を提供できますので、私と一緒にこれをデバッグするのに役立つかもしれません。

答え1

Microsoft WebDav Redirector には、デフォルトの XML 名前空間を使用できないという既知のバグがあります。名前空間プレフィックスを追加し、すべての XML 要素にそのプレフィックスをタグ付けすると、問題は解消されました。

http://lists.w3.org/Archives/Public/public-html/2011Jan/0263.html

関連情報