Правила <разработки WebDAV>

Общие сведения

Элемент <authoringRules> можно определить по URI на веб-сайте и указать разрешения на разработку WebDAV для этого пространства URI. Разрешения в этом элементе наследуются, поэтому дочерние URI будут иметь те же разрешения, что и родительский URI, при условии, что дочерний URI не имеет уникальных разрешений.

Элемент содержит ряд элементов, определяющих <add> отдельные правила разработки, которые содержат разрешения на доступ для пользователей или групп для определенных типов контента.

Правила разработки WebDAV могут показаться несколько похожими на параметры авторизации, которые находятся в <authorization> элементе , но хранятся отдельно, чтобы службы IIS поддерживали два разных набора авторизации: один для обычных HTTP-запросов (не webDAV) и другой для запросов WebDAV.

Совместимость

Версия Примечания
IIS 10.0 Элемент <authoringRules> не был изменен в IIS 10.0.
IIS 8,5 Элемент <authoringRules> не был изменен в IIS 8.5.
IIS 8,0 Элемент <authoringRules> не был изменен в IIS 8.0.
IIS 7,5 Элемент <authoringRules> поставляется как компонент IIS 7.5.
IIS 7.0 Элемент <authoringRules> появился в WebDAV 7.0, который был отдельной загрузкой для IIS 7.0.
IIS 6,0 Н/Д

Примечание

Модули WebDAV 7.0 и WebDAV 7.5 поставляются внеполосно для IIS 7.0, что требует загрузки и установки модулей по следующему URL-адресу:

https://www.iis.net/expand/WebDAV

В Windows 7 и Windows Server 2008 R2 модуль WebDAV 7.5 поставляется в качестве функции для IIS 7.5, поэтому скачивание WebDAV больше не требуется.

Настройка

Чтобы обеспечить поддержку публикации WebDAV для веб-сервера, необходимо установить модуль WebDAV. Для этого выполните следующие действия.

Windows Server 2012 или Windows Server 2012 R2

  1. На панели задач щелкните Диспетчер сервера.
  2. В диспетчер сервера откройте меню Управление и выберите пункт Добавить роли и компоненты.
  3. В мастере добавления ролей и компонентов нажмите кнопку Далее. Выберите тип установки и нажмите кнопку Далее. Выберите целевой сервер и нажмите кнопку Далее.
  4. На странице Роли сервера разверните узел Веб-сервер (IIS),веб-сервер, узел Общие функции HTTP, а затем выберите Публикация WebDAV. Щелкните Далее.
    Снимок экрана: веб-публикация DAV, выбранная для Windows Server 2012.
  5. На странице Выбор компонентов нажмите кнопку Далее.
  6. На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
  7. На странице Результаты нажмите кнопку Закрыть.

Windows 8 или Windows 8.1

  1. На начальном экране переместите указатель в левый нижний угол, щелкните правой кнопкой мыши кнопку Пуск и выберите панель управления.
  2. В панель управления выберите Программы и компоненты, а затем — Включить или отключить компоненты Windows.
  3. Разверните узлы Службы IIS, Веб-службы, Общие функции HTTP, а затем выберите Публикация WebDAV.
    Снимок экрана: веб-публикация DAV, выбранная для Windows 8.
  4. Нажмите кнопку ОК.
  5. Щелкните Закрыть.

Windows Server 2008 R2

  1. На панели задач нажмите кнопку Пуск, выберите Администрирование, а затем диспетчер сервера.
  2. В области иерархии диспетчер сервера разверните узел Роли и выберите Веб-сервер (IIS).
  3. На панели Веб-сервер (IIS) прокрутите страницу до раздела Службы ролей и щелкните Добавить службы ролей.
  4. На странице Выбор служб ролеймастера добавления служб ролей разверните узел Общие функции HTTP, выберите Публикация WebDAV и нажмите кнопку Далее.
    Снимок экрана: веб-публикация DAV, выбранная для Windows Server 2008.
  5. На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
  6. На странице Результаты нажмите кнопку Закрыть.

Windows 7

  1. На панели задач нажмите кнопку Пуск, а затем панель управления.
  2. В панель управления выберите Программы и компоненты, а затем — Включить или отключить компоненты Windows.
  3. Разверните узел Службы IIS, затем Веб-службы, а затем Общие функции HTTP.
  4. Выберите Публикация WebDAV и нажмите кнопку ОК.
    Снимок экрана: веб-публикация DAV, выбранная для Windows 7.

Windows Server 2008 или Windows Vista

Инструкции

Добавление правил разработки WebDAV

  1. Откройте диспетчер служб IIS:

    • Если вы используете Windows Server 2012 или Windows Server 2012 R2:

      • На панели задач щелкните диспетчер сервера, выберите Сервис, а затем диспетчер служб IIS.
    • Если вы используете Windows 8 или Windows 8.1:

      • Удерживая нажатой клавишу Windows, нажмите букву X и щелкните панель управления.
      • Щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
    • Если вы используете Windows Server 2008 или Windows Server 2008 R2:

      • На панели задач нажмите кнопку Пуск, наведите указатель на пункт Администрирование, а затем выберите Пункт Диспетчер служб IIS.
    • Если вы используете Windows Vista или Windows 7:

      • На панели задач нажмите кнопку Пуск, а затем панель управления.
      • Дважды щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
  2. В области Подключения разверните имя сервера, а затем перейдите к сайту, приложению или каталогу, в котором нужно включить просмотр каталогов.

  3. На панели Главная дважды щелкните Правила разработки WebDAV.
    Снимок экрана: панель

  4. В области Действия щелкните Добавить правило разработки...
    Снимок экрана, на котором показана область правил разработки веб-DAV.

  5. В диалоговом окне Добавление правила разработки укажите следующие параметры:

    • Разрешить доступ. Укажите, должно ли правило разработки применяться ко всем типам контента, или укажите определенные типы контента, которые следует разрешить.
    • Разрешить доступ к этому содержимому: укажите, должно ли правило разработки применяться ко всем пользователям, к определенным группам или ролям или к определенным пользователям.
    • Разрешения. Укажите, должно ли правило разработки разрешать доступ на чтение, запись или источник для указанных типов контента и пользователей.
      Снимок экрана: диалоговое окно
  6. Нажмите кнопку ОК.

Конфигурация

Элемент <authoringRules> настраивается по URI в файле ApplicationHost.config. Параметры можно хранить глобально, на уровне сайта или в каждой папке. Элемент <authoringRules> не может быть делегирован, поэтому все <authoringRules> элементы в Web.config файлах игнорируются.

Атрибуты

Атрибут Описание
defaultAccess Необязательный атрибут flags.

Задает параметры доступа по умолчанию для разработки WebDAV. Эти значения в сочетании с логической операцией ИЛИ, поэтому "Нет, чтение" = "Чтение".

Примечание:Source Access позволяет клиенту WebDAV запрашивать содержимое сопоставленного скриптом файла, например файла ASP.NET или PHP, в отличие от обработанных выходных данных файла.

Значение по умолчанию — None.

Значение Описание
None Разработка не допускается.

Числовое значение равно 0.
Read Доступ на чтение разрешен.

Числовое значение равно 1.
Write Доступ на запись разрешен.

Числовое значение равно 2.
Source Доступ к исходному коду разрешен.

Числовое значение равно 16.
allowNonMimeMapFiles Необязательный атрибут boolean . Значение true , если запросы WebDAV должны быть разрешены для файлов, которые не определены в схеме MIME; в противном случае — false. Например, файлы, сопоставленные со скриптами, не определены в схеме MIME, но веб-авторам по-прежнему может потребоваться изменить эти файлы, которые не разрешены в запросах IIS по умолчанию. Если задано значение true, модуль WebDAV будет принимать запросы для файлов, которые не включены в карту MIME. Если задано значение false, модуль потребует, чтобы все файлы были найдены в карте MIME и возвращали ошибку "404.3 — политика сопоставления MIME предотвращает этот запрос" для любого запроса, не соответствующего списку MIME. Значение по умолчанию — false.
defaultMimeType Необязательный строковый атрибут.

Указывает тип MIME по умолчанию для файлов, для которых не определен явный тип MIME.

Значение по умолчанию — application/octet-stream.

Дочерние элементы

Элемент Описание
add Необязательный элемент.

Добавляет правило разработки в коллекцию правил разработки.
clear Необязательный элемент.

Очищает коллекцию правил разработки.
remove Необязательный элемент.

Удаляет правило разработки из коллекции правил разработки.

Образец конфигурации

В следующем примере приведен пример <webdav> элемента для веб-сайта по умолчанию. В этом примере очищаются все существующие правила разработки, добавляется одно правило для группы администраторов, включается разработка WebDAV, указывается, что скрытые файлы разрешены, включается блокировка WebDAV и указывается поставщик блокировки, а также включается свойства WebDAV и указывается пространство имен XML по умолчанию для сопоставления свойств.

<location path="Default Web Site">
   <system.webServer>
      <webdav>
         <authoringRules defaultAccess="none" allowNonMimeMapFiles="true" defaultMimeType="text/plain">
            <clear />
            <add roles="administrators" path="*" access="Read, Write, Source" />
         </authoringRules>
         <authoring enabled="true" requireSsl="false">
            <fileSystem allowHiddenFiles="true" />
            <locks enabled="true" lockStore="webdav_simple_lock" requireLockForWriting="false" />
            <properties allowAnonymousPropfind="false" allowInfinitePropfindDepth="false" allowCustomProperties="true">
               <clear />
               <add xmlNamespace="*" propertyStore="webdav_simple_prop" />
            </properties>
         </authoring>
      </webdav>
   </system.webServer>
</location>

Пример кода

В следующих примерах настраиваются правила разработки WebDAV, чтобы клиенты WebDAV могли публиковать файлы, не перечисленные в схеме IIS MIME, и добавлять одно правило разработки, которое предоставляет доступ на чтение, запись и источник группе администраторов .

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/webdav/authoringRules /allowNonMimeMapFiles:"True" /commit:apphost

appcmd.exe set config "Default Web Site" -section:system.webServer/webdav/authoringRules /+"[roles='administrators',path='*',access='Read, Write, Source']" /commit:apphost

Примечание

При использовании AppCmd.exe для настройки этих параметров для параметра apphostфиксации необходимо задать значение . Это зафиксирует параметры конфигурации в соответствующем разделе расположения в файле ApplicationHost.config.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetApplicationHostConfiguration();

         ConfigurationSection authoringRulesSection = config.GetSection("system.webServer/webdav/authoringRules", "Default Web Site");
         authoringRulesSection["allowNonMimeMapFiles"] = true;

         ConfigurationElementCollection authoringRulesCollection = authoringRulesSection.GetCollection();

         ConfigurationElement addElement = authoringRulesCollection.CreateElement("add");
         addElement["roles"] = @"administrators";
         addElement["path"] = @"*";
         addElement["access"] = @"Read, Write, Source";
         authoringRulesCollection.Add(addElement);

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration

      Dim authoringRulesSection As ConfigurationSection = config.GetSection("system.webServer/webdav/authoringRules", "Default Web Site")
      authoringRulesSection("allowNonMimeMapFiles") = True

      Dim authoringRulesCollection As ConfigurationElementCollection = authoringRulesSection.GetCollection

      Dim addElement As ConfigurationElement = authoringRulesCollection.CreateElement("add")
      addElement("roles") = "administrators"
      addElement("path") = "*"
      addElement("access") = "Read, Write, Source"
      authoringRulesCollection.Add(addElement)

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var authoringRulesSection = adminManager.GetAdminSection("system.webServer/webdav/authoringRules", "MACHINE/WEBROOT/APPHOST/Default Web Site");
authoringRulesSection.Properties.Item("allowNonMimeMapFiles").Value = true;

var authoringRulesCollection = authoringRulesSection.Collection;

var addElement = authoringRulesCollection.CreateNewElement("add");
addElement.Properties.Item("roles").Value = "administrators";
addElement.Properties.Item("path").Value = "*";
addElement.Properties.Item("access").Value = "Read, Write, Source";
authoringRulesCollection.AddElement(addElement);

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set authoringRulesSection = adminManager.GetAdminSection("system.webServer/webdav/authoringRules", "MACHINE/WEBROOT/APPHOST/Default Web Site")
authoringRulesSection.Properties.Item("allowNonMimeMapFiles").Value = True

Set authoringRulesCollection = authoringRulesSection.Collection

Set addElement = authoringRulesCollection.CreateNewElement("add")
addElement.Properties.Item("roles").Value = "administrators"
addElement.Properties.Item("path").Value = "*"
addElement.Properties.Item("access").Value = "Read, Write, Source"
authoringRulesCollection.AddElement(addElement)

adminManager.CommitChanges()