Как заставить пользовательский сервер WebDAV работать с MS mini-redirector

Как заставить пользовательский сервер WebDAV работать с MS mini-redirector

Я написал собственный сервер WebDAV, который аутентифицирует пользователей из базы данных и обслуживает виртуальную файловую систему на основе записей из базы данных. Он хорошо работает со сторонними клиентами WebDAV, но не работает со встроенным мини-редиректором Windows при сопоставлении диска с местоположением http.

Самое странное, что на моем компьютере для разработки, где я написал сервер, я могу нормально подключиться, однако ЛЮБОЙ другой компьютер, который пытается получить доступ к серверу, не может подключиться с помощью мини-редиректора.

Я использовал Fiddler для анализа сетевого трафика, и все выглядит нормально. Когда я пытаюсь сопоставить диск, отправляется заголовок OPTIONS, и мой сервер отвечает 200 OK. Затем мини-редиректор отправляет метод PROPFIND с глубиной 0. Мой сервер отвечает 401 unauthorized. Это вызывает диалоговое окно входа для пользователя и пароля. После ввода пароля отправляется новый запрос PROPFIND, но на этот раз с заголовком авторизации. Кажется, все работает нормально, мой сервер принимает учетные данные для входа и отвечает мультистатусным ответом 207 с «HREF» в корневой каталог. В этот момент мини-редиректор снова вызывает приглашение на вход и делает это в общей сложности 3 раза, прежде чем не может подключиться с ошибкой, говорящей о том, что сервер не может быть найден. Что странно, сервер НАХОДИТСЯ, я вижу его в Fiddler, и сервер отвечает так, как и ожидалось.

Все остальные сторонние клиенты WebDAV имеют аналогичный обмен с моим сервером, подключаются и выводят список каталогов просто отлично. Только мини-редиректор не работает. И как я уже упоминал выше, он отлично работает на моей машине разработки с мини-редиректором (хотя сервер IIS 7.5, к которому я подключаюсь, не находится на моей машине разработки). Все остальные компьютеры не подключаются. Я убедился, что использовал хак реестра, чтобы разрешить базовую аутентификацию через незащищенный сайт HTTP. Я даже переместил свой сервер на защищенный сайт HTTPS с сертификатом SSL на всякий случай, если проблема была в этом, и он все еще не работает. Есть ли у кого-нибудь идеи? Я думаю, что это как-то связано с моей настройкой IIS 7.5 на сервере или с настройкой на всех других клиентских машинах, кроме моей машины разработки, потому что мой код, похоже, в порядке, сервер, похоже, отлично отвечает на запросы мини-редиректоров, он просто не отображает диск после ответа 207 multistatus, как это происходит со всеми другими клиентами.

Любая помощь будет высоко оценена. Что расстраивает, так это то, что я ожидал, что mini-redirector будет самым сложным в работе, поэтому я сначала заставил его работать на своей машине для разработки, прежде чем тестировать его со всеми остальными клиентами, поэтому я думал, что все в порядке, пока не попытался подключиться на других компьютерах и не увидел, что он не работает, но только с mini-redirector. К сожалению, mini-redirector проще всего использовать для моих потенциальных клиентов, поэтому крайне важно, чтобы он работал с mini-redirector. Я могу предоставить ответ/запросы от Fiddler, если это поможет кому-нибудь отладить это со мной.

решение1

Microsoft WebDav Redirector имеет известную ошибку, которая не позволяет вам использовать пространство имен XML по умолчанию. После добавления префикса пространства имен и пометки всех моих элементов XML с его помощью моя проблема исчезла.

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

Связанный контент