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


Добавление правил <разработки 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. На странице Выбор функций (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.
  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
access Необязательный атрибут флагов.

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

Примечание. Source Доступ позволяет клиенту 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 могли публиковать файлы, не перечисленные в карте 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()