WebDAV (Web-based Distributed Authoring and Versioning) — защищённый сетевой протокол высокого уровня, работающий поверх HTTP для доступа к объектам и коллекциям.
Содержание:
По сравнению с FTP протокол WebDAV обладает рядом преимуществ:
- Выполнение основных файловых операций над объектами на удаленном сервере;
- Выполнение расширенных файловых операций (блокировки, поддержка версий);
- Работа с любым типом объектов (не только файлы);
- Поддержка метаданных (свойств) объектов;
- Поддержка одновременной работы над объектами.
- Нет необходимости открывать дополнительные порты (работает поверх http).
Перед тем как начать необходимо установить IIS и настроить хотя бы один веб-сайт, к содержимому которого и будем открывать доступ с помощью WebDAV.
В этом примере используется IIS 7.5, входящий в базовую поставку Windows 7.
Открываем Панель управления -> Программы -> Включение или отключение компонентов Windows. В списке раскрываем «Службы IIS» -> Службы Интернета -> Общие функции HTTP -> отмечаем компоненту «Публикация WebDAV»:
Далее открываем «Диспетчер служб IIS» (Пуск -> Правый клик по Компьютер -> в меню выбрать Управление -> Службы и приложения). Выбираем сайт, в моем случае это Default Web Site (веб-сайт по умолчанию). Переходим в раздел «Проверка подлинности». Здесь необходимо удостовериться, что включена компонента «Проверка подлинности Windows»:
Раздел «Правила авторизации». Здесь добавляем разрешающее правило для всех пользователей (если оно отсутствует):
Открываем раздел «Правила разработки WebDAV».
Добавляем новое правило разработки. Разрешить доступ — ко всему содержимому. Далее указываем группу пользователей, которой разрешен доступ. В моем случае это группа Администраторы. Внизу в разделе «разрешения», отмечаем все три опции (чтение, источник, запись), чтобы гарантировать полный доступ:
Последний этап — включаем WebDAV (в правой колонке ссылка «Включить WebDAV»):
На всякий случай перезапускаем IIS. На этом все. теперь пробуем подключиться.
Еще раз напоминаю, для работы WebDAV не надо открывать ни каких дополнительных портов, кроме, разумеется, TCP 80. Т.е. если есть доступ к сайту, то и WebDAV будет работать.
Самый быстрый и простой способ: в командной строке выполнить
net use * http://ip_адрес_сайта/
Далее введите имя пользователя и пароль. В результате ресурс будет подключен как сетевой диск.
Или через графический интерфейс. Откройте Пуск -> Компьютер -> Подключить сетевой диск. Введите адрес сервера (обязательно c http://) и нажмите Готово.
Введите имя пользователя и пароль:
После нажатия на Ок, откроется окно с содержимым удаленного сервера.
Ссылки по теме:
61 ответ к “Настройка WebDAV на IIS (Windows 7)”
Помогите с проблемой!
WebDav по локалке прекрасно работает, но через удаленку никак не проходит! Нет ни антивирусов ни файрволов, куда копать???
Проверить проброс порта TCP 80 на роутере.
Проверить не блокирует ли провайдер 80-й порт.
Тестировать внешнее подключение не из локальной, а из внешней
сети.
1 на роутере порт проброшен
2 При проверке сервисом (http://coder.v-tanke.ru/cport.php?port=80) пишет порт открыт, но только если он непроброшен на роутере. Как только вносишь запись в роутере на переадресацию на 80 порт, сервис информирует, что порт закрыт!!!
Ничего не понимаю???
Если по локалке все работает, то проблема в пробросе портов, роутере, а может быть и провайдере.
Попробуйте пробросить какой-нибудь нестандартный внешний порт.
Попробуйте просто подключиться к сайту по http из внешней сети. Если сайт будет нормально открываться, тогда уже подключайтесь по WebDAV.
Точно отключен фаервол?
Локалхост тоже давал 403 ошибку, но там была расшифровка проблемы. Прочитав, понял, что нужно в диспетчере IIS нужно включить возможность «просмотра каталога». Что мне и нужно было (альтернатива фтп).
Теперь по локалхост видит содержимое, сетевой диск подключается. А вот с чужого компа просит имя пользователя и пароль. Какие нужно вводить и где их определить?
П.С.: на винде две учетные записи: админская с паролем и одна пользовательская без пароля.
См раздел «Правила разработки WebDav» в настройках сайта.
Пользователь должен обязательно иметь пароль. С пустым не прокатит из-за политики безопасности.
Попробуй для начала добавить в разрешения группу администраторов.
Вот тут мне неочень понятно. Какие пользователи имеются в виду? Учетки созданные в винде? А если я хочу дать человеку ещё доступ, например только на чтение. Для этого надо создавать новую учетку в винде и сообщать ему логин-пароль?
Или для этой службы можно создать каких-то других пользователей (имеенно внутри службы)?
У учетки-админа на винде есть пароль. Так почему для доступа к ВебДАВ не канает админский логин-пароль? Потому что комп постоянно висит под юзером без пароля?
Заранее прощу прощения за занудство))
Да, учетки, созданные в винде.
Да, создаешь учетку. Создаешь группу пользователей например WebDAV-чтение. Присваиваешь эту группу пользователю, все другие группы можно удалить.
Затем открываешь настрйки безопасности корневой папки сайта (по умолчанию wwwroot). Добавляешь группу WebDAV-чтение и выставляешь права только на чтение.
Затем открываешь «Правила разработки WebDav» и тоже для этой группы выставляешь там разрешения.
Почему удобнее через группы — следующего пользователя просто добавляешь в группу и все сразу работает.
Проверь не отключена ли учетная запись администратора. По умолчанию на семерке она отключена. Проверь пароль. Проверь «Правила разработки WebDav» для администратора или группы администраторов.
Сделал, всё как по инструкции. И по localhost и айпи с другого компа выдаюёт 403 ошибку «доступ запрещён». Где копать?
А веб-сайт на локалхост открывается нормально?
Супер. Спасибо большое. А вот только где пароль задается? у меня его даже нет )))
Пароль задается конкретному пользователю.
А уж потом для этого пользователя вы можете открыть доступ по WebDAV
Большое СПАСИБО!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Добавьте еще полный доступ для пользователя IUSR и группы IIS_IUSRS.
Уточню, именно на закладке Безопасность, не Общий доступ к файлам.
Если опять облом. Попробуйте добавить User в группу администраторов.
Пользователя IUSR не видит. Группу IIS_IUSRS добавил. Облом.
А User уже и так в администраторах.
М-да…
Сдаюсь. Не знаю что еще посоветовать
>>>Max Bond: Может у вас обоих пользователи имеют пустой пароль? В этом случае доступ по сети запрещен.
В моей учетке нет пароля. Создавал нового юзера User с паролем User еще для доступа по FTP. Пробовал вводить эти данные — результат тот же.
А для пользователя User правила авторизации и правила разработки WebDAV создали?
Авторизации и правила разработки WebDAV «для всех» удалил. Добавил только для User. То же самое.
Пересоздал сайт, добавил разрешения снова — то же самое.
А на FTP Нормально с этим пользователем заходит?
Ошибся. Не FTP, а обычный «общий доступ» (Свойства папки — Доступ). Да, заходит под User с моего Android.
Создал FTP сервер. Разрешил вход только User. Да, без проблем входит.
И вроде бы абсолютно одинаковые манипуляции, но не входит на WebDAV..
М-да… какая-то тупая засада…
А при входе имя пользователя указываете с доменом или без?
{Имя компьютера}\{Имя пользователя}
И с адресом, и без — одинаково.
1. Заметил, что окошко ввода пароля выглядит не так, как на последнем скрине здесь.
2. Если включить «Просмотр каталога» и дать разрешения на авторзацию и разработку WebDAV всем пользователям, то в браузере можно посмотреть список файлов в расшаренной папке. Ну и скачать тоже.. Без логина и пароля, естессно.. О_о
Ну это доступ к файлам через веб-сервер.
Последнее что не проверили — это свойства папки, в которой располагается веб-сервер, закладка Безопасность. Какие разрешения для пользователя User? Дай ему полный доступ.
Там уже есть доступ «для всех» со всеми разрешениями. Удалил, разрешил только User. Результат ожидаемый: не входит :(
Вот только одна проблема НЕТ нигде «Диспетчер служб IIS».
Установлена Win7 Mаксимальная, SP1 — в чем проблема???
А вы установлили IIS, через «Компоненты Windows»?
Общие функции HTTP должны быть все установлены.
Еще.
Откройте Пуск -> Все программы -> Стандартные -> Выполнить.
В окне запуска ввести: inetmgr
Должен открыться «Диспетчер служб IIS».
Если нет, проверьте установлена ли компонента Службы IIS -> Средства управления веб-сайтом -> Консоль управления IIS
IIS компоненты есть а диспетчера там НЕТ
А с какого дистрибутива устанавливали Windows? Сборка?
уточню у сына..
спасибо — помогла статья.
Спасибо за информацию. Очень хорошая подача материала, но возник один вопрос.
«Здесь необходимо удостовериться, что включена компонента «Проверка подлинности Windows»:» — в этому случае доступ будет возможен только из интрасети (о чем нас услужливо предупреждает сам iis).
Но, если компонент выключен, то ресурс вообще перестает обнаруживаться.
Я экспериментировал и так и эдак, но доступа так и не получил — система выдавала ошибку авторизации (неверные данные).
Буду благодарен за помощь в решении.
Привет!
Не знаю почему в инструкции к IIS написано про доступ только из интрасети. Может это справедливо, если сеть под Active Directory? Не знаю…
Но в обычном случае «Проверка подлинности Windows» работает везде где есть Windows.
Т.е. включаю «Проверка подлинности Windows», назначаю «Правила разработки WebDav». Все, если веб-сайт доступен из вне, то можно подключиться и по WebDav. Проверено на практике!
>Я экспериментировал и так и эдак, но доступа так и не получил – система выдавала ошибку авторизации (неверные данные).
Т.е даже из локальной сети доступа не получил? А настраиваешь доступ как — под группу или конкретного пользователя?
И под группу, и под польователя. По всем другим протоколам доступ есть. Команда net use таки видит мой домен, запрашивает данные для авторизации, но авторизацию не проходит. Говорит, липовые данные.
А как точно сообщение об ошибке выглядит?
Системная ошибка 5.
Отказано в доступе.
А в «Правилах авторизации» разрешение для всех пользователей стоит?
нет, только для того, которым хочу залогиниться. Аппрувил всех — без разницы.
Т.е. в «Правилах разработки» и в «Правилах авторизации» разрешения есть… Да, странно
Столкнулся с этой же проблемой. Кто-нибудь знает решение?
Может у вас обоих пользователи имеют пустой пароль? В этом случае доступ по сети запрещен.
Сам намучался с этой проблемой, не один час убил.
Но решение нашел: В секции «Authentication» для Windows Authentication нужно выбрать дополнительную настройку и там отключить «Enable Kernel-mode» authentication. Как написано в описании эа настройка нужна тогда, когда используется kerberos либо пулы приложений работают из под кастомных учеток. Ни того ни другого у меня нет. После отключения заработало.