Поделиться через


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

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

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

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

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

Версия Примечания
IIS 10.0 Элемент <add> не был изменен в IIS 10.0.
IIS 8,5 Элемент <add> не был изменен в IIS 8.5.
IIS 8,0 Элемент <add> не был изменен в IIS 8.0.
IIS 7,5 Элемент <add> входит в <authoringRules> состав iis 7.5.
IIS 7.0 Элемент <add><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.
  5. На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
  6. На странице Результаты нажмите кнопку Закрыть.

Windows 7

  1. На панели задач нажмите кнопку Пуск, а затем выберите пункт панель управления.
  2. В панель управления щелкните Программы и компоненты, а затем — Включить или отключить компоненты Windows.
  3. Разверните узел Службы IIS, затем Службы Интернета, а затем Общие функции HTTP.
  4. Выберите WebDAV Publishing (Публикация 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 Authoring Rules.
    Снимок экрана: панель

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

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

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

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

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

Атрибуты

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

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

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

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

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

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

Числовое значение равно 16.
Значение по умолчанию — None.
path Необязательный строковый атрибут.

Указывает имя файла или расширение имени файла, к которому применяется правило разработки. Например, "*.aspx", "*.php" и т. д. Кроме того, определены следующие специальные идентификаторы.
Значение Описание
* Указывает, что правило будет применяться ко всему содержимому.
Значение по умолчанию отсутствует.
roles Необязательный строковый атрибут.

Указывает роли или группы для правила авторизации. В список, разделенный запятыми, можно добавить несколько ролей.

Значение по умолчанию отсутствует.
users Необязательный строковый атрибут.

Указывает пользователей для правила авторизации. В список, разделенный запятыми, можно добавить нескольких пользователей. Кроме того, определены следующие специальные идентификаторы.
Значение Описание
* Указывает, что правило будет применяться ко всем пользователям.
? Указывает, что правило будет применяться к анонимным пользователям.
Значение по умолчанию отсутствует.

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

Отсутствует.

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

В следующем примере приведен пример <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()