Как сделать Windows XP более дружелюбной к WebDAV каталогам под Apache
Сегодня на сайте публикую статью из первого выпуска рассылки "Информационный бюллетень от ApacheDev.ru", который был разослан подписчикам неделю назад. Если вы хотите получать интересные статьи без недельной задержки, то прошу вступать в ряды подписчиков рассылки от ApacheDev.ru. Рассылка также содержит последние новости Apache и ссылки на полезные модули, найденные мною в сети. Подписаться…
В последнее время меня очень увлекла тема про протокол WebDAV и модуль mod_dav. На сайте www.apachedev.ru уже опубликованы две статьи (первая и вторая) из серии про mod_dav. Сегодня же займемся практической задачей - "приручением" Windows XP к защищенным WebDAV каталогам.
Как сделать Windows XP более дружелюбной к WebDAV каталогам под Apache
Примечание: В Windows XP каталоги WebDAV более известны как “веб-папки”.
Примечание: Это руководство подходит только для Apache 1.3.x и для Windows XP; чтобы оно стало пригодно и для Apache 2.x его необходимо немного изменить. В наших собственных опытах для работы с Apache 2.x мы отказались от AuthDigest в пользу AuthBasic плюс SSL.
Windows XP некорректно проводит процесс идентификации при установке соединения с каталогами WebDAV, в отличие от Windows 2000, у которой в этом вопросе никаких проблем нет. Эта статья покажет вам, как заставить XP правильно подключаться к защищенным WebDAV каталогам.
Тут мы покажем, как создать WebDAV каталог, защищенный паролем, который будет доступен из Windows XP либо через “Сетевое окружение -> Добавить новый элемент…” (My Network Place -> Add Network Place), либо с помощью “Подключения сетевого диска” (Map Network Drive). Об этих методах подключения Вы можете прочитать в статье "Accessing a shared (WebDAV) webfolder from Windows XP or 2000".
Симптомы
Если используется цифровая (mod_auth_digest, НЕ mod_digest) или базовая идентификация, то Windows XP считает, что WebDAV серверу необходимо отправить NTLM (LanManager) данные идентификации, которые содержат “hostname/username”. А WebDAV сервер, конечно же, ожидает только “username”.
В этом случае первая попытка идентификации не проходит и XP показывает диалог ввода пароля с полем Username, заполненным как “hostname/username”.
Решение
- Скачайте mod_encoding с http://webdav.todo.gr.jp/download/, скомпилируйте его и поместите туда, где его сможет увидеть Apache. Для своего Solaris я поместил mod_encoding.so в /its/software/libexec/apache/mod_encoding.so
- Добавьте следующие строки в файл httpd.conf
LoadModule encoding_module /its/software/libexec/apache/mod_encoding.so
LoadModule headers_module /its/software/libexec/apache/mod_headers.so
LoadModule dav_module /its/software/libexec/apache/libdav.so
LoadModule auth_module /its/software/libexec/apache/mod_auth.so
AddModule mod_encoding.c
AddModule mod_headers.c
AddModule mod_dav.c
AddModule mod_auth.c
#
# Broken WebDAV for Windows XP
#
BrowserMatch “^WebDAVFS/1.[012]” redirect-carefully
BrowserMatch “Microsoft Data Access Internet Publishing Provider” redirect-carefully
BrowserMatch “Microsoft-WebDAV-MiniRedir/5.1.2600″ redirect-carefully
BrowserMatch “^WebDrive” redirect-carefully
BrowserMatch “^WebDAVFS” redirect-carefully
<IfModule mod_headers.c>
Header add MS-Author-Via “DAV”
</IfModule>
<IfModule mod_encoding.c>
EncodingEngine on
NormalizeUsername on
</IfModule>
LoadModule headers_module /its/software/libexec/apache/mod_headers.so
LoadModule dav_module /its/software/libexec/apache/libdav.so
LoadModule auth_module /its/software/libexec/apache/mod_auth.so
AddModule mod_encoding.c
AddModule mod_headers.c
AddModule mod_dav.c
AddModule mod_auth.c
#
# Broken WebDAV for Windows XP
#
BrowserMatch “^WebDAVFS/1.[012]” redirect-carefully
BrowserMatch “Microsoft Data Access Internet Publishing Provider” redirect-carefully
BrowserMatch “Microsoft-WebDAV-MiniRedir/5.1.2600″ redirect-carefully
BrowserMatch “^WebDrive” redirect-carefully
BrowserMatch “^WebDAVFS” redirect-carefully
<IfModule mod_headers.c>
Header add MS-Author-Via “DAV”
</IfModule>
<IfModule mod_encoding.c>
EncodingEngine on
NormalizeUsername on
</IfModule>
- Затем добавьте ваши DAV каталоги в httpd.conf. Если такой каталог называется directory, то httpd.conf должен выглядеть примерно так:
DAVLockDB /path/to/lockfile/DAVLock
DAVMinTimeout 600
<Directory “directory”>
DAV On
AuthType Basic
AuthName test
AuthUserFile /path/to/passwd/file
AuthGroupFile /dev/null
Require user test
</Directory>
DAVMinTimeout 600
<Directory “directory”>
DAV On
AuthType Basic
AuthName test
AuthUserFile /path/to/passwd/file
AuthGroupFile /dev/null
Require user test
</Directory>
Убедитесь, что каталог, в котором находится файл блокировок (/path/to/lockfile/), доступен для записи пользователю, который запустил сервер (httpd).
- Добавьте запись в файл паролей
htpasswd -c /path/to/passwd/file test
Убедитесь, что файл паролей доступен для чтения пользователю, который запустил процесс httpd. - Перезапустите сервер и можете приступать к работе.
А то когда их не одна сотня и сделать синхронизацтю паролей…
Комментарий от universite — Июнь 19, 2006 @ 9:33 pm
Комментарий от TOR — Август 15, 2006 @ 7:41 am
http://сервер:80/папка
Тогда Windows отошлет пароль в правильном виде (без имени хоста).
Комментарий от SuSt — Август 5, 2007 @ 12:55 pm
http://depositfiles.com/ru/files/2z68iqsel
Комментарий от petro — Март 4, 2009 @ 12:39 am
Комментарий от Бабанька — Март 16, 2009 @ 3:11 am
Комментарий от Хранитель — Март 19, 2009 @ 8:07 pm
Комментарий от King — Март 20, 2009 @ 10:56 pm