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


Свойства Свойств <WebDAV>

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

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

Примечание

WebDAV определяет два типа свойств:

  • "Динамические" свойства. Эти свойства существуют в базовой файловой системе. Например, имя и размер файла. Эти свойства всегда поддерживаются.
  • "Мертвые" свойства. Эти свойства определяются пользователем и хранятся в хранилище свойств. Например, автор документа или используемый шаблон.

Чтобы использовать "мертвые" свойства, необходимо задать allowCustomProperties<properties> для элемента значение true и определить сопоставление пространства имен XML с поставщиком свойств из списка поставщиков свойств, определенных в <коллекции propertyStores> .

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

Версия Примечания
IIS 10.0 Элемент <properties> не был изменен в IIS 10.0.
IIS 8,5 Элемент <properties> не был изменен в IIS 8.5.
IIS 8,0 Элемент <properties> не был изменен в IIS 8.0.
IIS 7,5 Элемент <properties> элемента поставляется <authoring> как компонент IIS 7.5.
IIS 7.0 Элемент <properties><authoring> элемента появился в 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. Щелкните Далее.
    Снимок экрана: узлы веб-сервера и общих компонентов H T T P, развернутые с выбранным параметром Публикация Web DAV. .
  5. На странице Выбор компонентов нажмите кнопку Далее.
  6. На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
  7. На странице Результаты нажмите кнопку Закрыть.

Windows 8 или Windows 8.1

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

Windows Server 2008 R2

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

Windows 7

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

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. Когда откроется страница Правила разработки WebDAV , щелкните Параметры WebDAV на панели Действия .
    Снимок экрана: страница

  5. При отображении страницы Параметры WebDAV укажите следующие параметры в разделе Поведение свойства :

    • Установите для параметра Разрешить анонимные запросы свойствзначение False.

    • Задайте для параметра Разрешить настраиваемые свойствазначение True.

    • Задайте для параметра Разрешить запросы свойств с бесконечной глубинойзначение False.

      Снимок экрана: страница параметров Web DAV с разделом

  6. Нажмите кнопку с многоточием (...), чтобы запустить редактор коллекции пространства имен.
    Снимок экрана: диалоговое окно редактора коллекции пространства имен с простым дефисом web dav, выбранным из раскрывающегося списка.

  7. Нажмите кнопку Добавить , а затем выберите webdav_simple_prop в раскрывающемся списке.

  8. Укажите "*" для xmlNameSpace и нажмите кнопку ОК.

  9. Выполнив предыдущие шаги, нажмите кнопку Применить на панели Действия .

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

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

Атрибуты

Атрибут Описание
allowAnonymousPropfind Необязательный атрибут типа Boolean . Значение true , если анонимные запросы свойств WebDAV разрешены; в противном случае — false. Важно! Для большинства команд WebDAV требуется проверка подлинности. Однако анонимные запросы свойств WebDAV могут быть разрешены для обратной совместимости для некоторых клиентов WebDAV. Если для вашей среды нет особых требований, анонимные запросы свойств WebDAV всегда должны быть отключены, так как они представляют вероятность раскрытия информации для веб-сайта. Например, анонимный клиент WebDAV может получить список файлов в приложении. Значение по умолчанию — false.
allowInfinitePropfindDepth Необязательный атрибут типа Boolean .

Значение true , если разрешены запросы свойств WebDAV бесконечной глубины; в противном случае — false.

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

Значение по умолчанию — false.
allowCustomProperties Необязательный атрибут типа Boolean .

Значение true , если пользовательские свойства WebDAV разрешены; в противном случае — false.

Примечание: Пользовательские свойства WebDAV также называются "мертвыми".

Примечание: Если allowCustomProperties для задано значение true , но не определены хранилища свойств или нет пространства имен XML для сопоставлений хранилищ свойств, пользовательские свойства храниться не удастся.

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

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

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

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

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

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

В следующем примере приведен пример <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, чтобы отключать анонимные и бесконечные запросы свойств глубины, а также включить пользовательские свойства с пространством имен XML по умолчанию, сопоставленным со встроенным поставщиком webdav_simple_prop .

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/webdav/authoring /properties.allowAnonymousPropfind:"False" /commit:apphost

appcmd.exe set config "Default Web Site" -section:system.webServer/webdav/authoring /properties.allowInfinitePropfindDepth:"False" /commit:apphost

appcmd.exe set config "Default Web Site" -section:system.webServer/webdav/authoring /properties.allowCustomProperties:"True" /commit:apphost

appcmd.exe set config "Default Web Site" -section:system.webServer/webdav/authoring /+"properties.[xmlNamespace='*',propertyStore='webdav_simple_prop']" /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 authoringSection = config.GetSection("system.webServer/webdav/authoring", "Default Web Site");

         ConfigurationElement propertiesElement = authoringSection.GetChildElement("properties");
         propertiesElement["allowAnonymousPropfind"] = false;
         propertiesElement["allowInfinitePropfindDepth"] = false;
         propertiesElement["allowCustomProperties"] = true;

         ConfigurationElementCollection propertiesCollection = propertiesElement.GetCollection();

         ConfigurationElement addElement = propertiesCollection.CreateElement("add");
         addElement["xmlNamespace"] = @"*";
         addElement["propertyStore"] = @"webdav_simple_prop";
         propertiesCollection.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 authoringSection As ConfigurationSection = config.GetSection("system.webServer/webdav/authoring", "Default Web Site")

      Dim propertiesElement As ConfigurationElement = authoringSection.GetChildElement("properties")
      propertiesElement("allowAnonymousPropfind") = False
      propertiesElement("allowInfinitePropfindDepth") = False
      propertiesElement("allowCustomProperties") = True

      Dim propertiesCollection As ConfigurationElementCollection = propertiesElement.GetCollection

      Dim addElement As ConfigurationElement = propertiesCollection.CreateElement("add")
      addElement("xmlNamespace") = "*"
      addElement("propertyStore") = "webdav_simple_prop"
      propertiesCollection.Add(addElement)

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

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

var authoringSection = adminManager.GetAdminSection("system.webServer/webdav/authoring", "MACHINE/WEBROOT/APPHOST/Default Web Site");
var propertiesElement = authoringSection.ChildElements.Item("properties");
propertiesElement.Properties.Item("allowAnonymousPropfind").Value = false;
propertiesElement.Properties.Item("allowInfinitePropfindDepth").Value = false;
propertiesElement.Properties.Item("allowCustomProperties").Value = true;

var propertiesCollection = propertiesElement.Collection;

var addElement = propertiesCollection.CreateNewElement("add");
addElement.Properties.Item("xmlNamespace").Value = "*";
addElement.Properties.Item("propertyStore").Value = "webdav_simple_prop";
propertiesCollection.AddElement(addElement);

adminManager.CommitChanges();

VBScript

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

Set authoringSection = adminManager.GetAdminSection("system.webServer/webdav/authoring", "MACHINE/WEBROOT/APPHOST/Default Web Site")
Set propertiesElement = authoringSection.ChildElements.Item("properties")
propertiesElement.Properties.Item("allowAnonymousPropfind").Value = False
propertiesElement.Properties.Item("allowInfinitePropfindDepth").Value = False
propertiesElement.Properties.Item("allowCustomProperties").Value = True

Set propertiesCollection = propertiesElement.Collection

Set addElement = propertiesCollection.CreateNewElement("add")
addElement.Properties.Item("xmlNamespace").Value = "*"
addElement.Properties.Item("propertyStore").Value = "webdav_simple_prop"
propertiesCollection.AddElement(addElement)

adminManager.CommitChanges()