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


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

Обзор

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

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

Правила разработки WebDAV могут показаться несколько аналогично параметрам авторизации, которые находятся в <authorization> элементе, но хранятся отдельно, чтобы службы IIS поддерживали два разных набора авторизации: один для обычных запросов HTTP (non-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. На странице Выбор функций (Select features) нажмите кнопку Далее.
  6. На странице Подтверждение выбранных элементов для установки щелкните Установить.
  7. На странице Результаты нажмите кнопку Закрыть.

Windows 8 или Windows 8.1

  1. На начальном экране переместите указатель на левый нижний угол, щелкните правой кнопкой "Пуск" и щелкните панель управления.
  2. В панель управления щелкните "Программы и компоненты", а затем выберите "Включить или отключить функции Windows".
  3. Разверните службы IIS, разверните веб-службы World Wide, разверните общие функции HTTP и выберите "Публикация WebDAV".
    Снимок экрана: веб-публикация DAV, выбранная для Windows 8.
  4. Щелкните OK.
  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, а затем веб-службы World Wide, а затем общие функции HTTP.
  4. Выберите "Публикация WebDAV" и нажмите кнопку "ОК".
    Снимок экрана: веб-публикация DAV, выбранная для Windows 7.

Windows Server 2008 или Windows Vista

Инструкции

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

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

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

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

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

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

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

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

  4. В области действий нажмите кнопку "Добавить правило разработки" ...
    Снимок экрана: панель правил разработки веб-DAV.

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

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

Настройка

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

Атрибуты

Атрибут Description
defaultAccess Необязательный атрибут флагов.

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

Примечание. Source Доступ позволяет клиенту 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.

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

Элемент Description
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 могли публиковать файлы, не перечисленные в карте MIME IIS, и добавлять одно правило разработки, которое предоставляет доступ к группе администраторов для чтения, записи и источника.

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()