Partager via


Propriétés WebDAV <properties>

Vue d’ensemble

L’élément <properties> de l’élément <authoring> définit le comportement de verrouillage du module WebDAV. Plus précisément, l’élément <properties> contient des attributs qui définissent si les propriétés WebDAV personnalisées sont activées, si les demandes de propriété anonymes ou infinies sont autorisées et peuvent contenir une série d’éléments <add> qui définissent des mappages pour les espaces de noms XML aux fournisseurs de magasin de propriétés.

Remarque

WebDAV définit deux types de propriétés :

  • Propriétés « dynamiques » : ces propriétés existent dans le système de fichiers sous-jacent. Par exemple, le nom de fichier et la taille du fichier. Ces propriétés sont toujours prises en charge.
  • Propriétés « mortes » : ces propriétés sont définies par l’utilisateur et stockées dans un magasin de propriétés. Par exemple, l’auteur d’un document ou le modèle utilisé.

Pour utiliser les propriétés « mortes », vous devez définir l’élément allowCustomProperties de l’élément <properties> sur true, et définir un mappage pour un espace de noms XML à un fournisseur de propriétés à partir de la liste des fournisseurs de propriétés définis dans la collection <propertyStores>.

Compatibilité

Version Notes
IIS 10.0 L’élément <properties> n’a pas été modifié dans IIS 10.0.
IIS 8.5 L’élément <properties> n’a pas été modifié dans IIS 8.5.
IIS 8.0 L’élément <properties> n’a pas été modifié dans IIS 8.0.
IIS 7.5 L’élément <properties> de l’élément <authoring> est fourni en tant que fonctionnalité d’IIS 7.5.
IIS 7.0 L’élément <properties> de l’élément <authoring> a été introduit dans WebDAV 7.0, qui constituait un téléchargement distinct pour IIS 7.0.
IIS 6.0 N/A

Remarque

Les modules WebDAV 7.0 et WebDAV 7.5 n’étaient pas livrés avec IIS 7.0, mais nécessitaient un téléchargement et une installation via l’URL suivante :

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

Avec Windows 7 et Windows Server 2008 R2, le module WebDAV 7.5 est fourni en tant que fonctionnalité pour IIS 7.5, de sorte que le téléchargement de WebDAV n’est plus nécessaire.

Programme d’installation

Pour prendre en charge la publication de WebDAV pour votre serveur web, vous devez installer le module WebDAV. Pour cela, procédez comme suit.

Windows Server 2012 ou Windows Server 2012 R2

  1. Dans la barre des tâches, cliquez sur Gestionnaire de serveur.
  2. Dans Gestionnaire de serveur, cliquez sur le menu Gérer, puis sur Ajouter des rôles et des fonctionnalités.
  3. Dans l’Assistant Ajout de rôles et de fonctionnalités, cliquez sur Suivant. Sélectionnez le type d’installation, puis cliquez sur Suivant. Sélectionnez le serveur de destination, puis cliquez sur Suivant.
  4. Dans la page Rôles de serveur, développez Serveur web (IIS), développez Serveur web, développez Fonctionnalités HTTP courantes, puis sélectionnez Publication WebDAV. Sélectionnez Suivant.
    Screenshot shows Web Server and Common H T T P Features nodes expanded with Web DAV Publishing selected..
  5. Dans la page Sélectionner les composants, cliquez sur Suivant.
  6. Dans la page Confirmer les sélections d’installation, cliquez sur Installer.
  7. Dans la page Résultats , cliquez sur Fermer.

Windows 8 ou Windows 8.1

  1. Dans l’écran Démarrer, déplacez le pointeur en bas à gauche, cliquez avec le bouton droit sur le bouton Démarrer, puis cliquez sur Panneau de configuration.
  2. Dans Panneau de configuration, cliquez sur Programmes et fonctionnalités, puis sur Activer ou désactiver des fonctionnalités Windows.
  3. Développez Internet Information Services, développez Services World Wide Web, développez Fonctionnalités HTTP courantes, puis sélectionnez Publication WebDAV.
    Screenshot shows Turn Windows features on or off page with Common H T T P Features node expanded and Web DAV Publishing selected.
  4. Cliquez sur OK.
  5. Cliquez sur Fermer.

Windows Server 2008 R2

  1. Dans la barre des tâches, cliquez sur Démarrer, pointez sur Outils d’administration, puis cliquez sur Gestionnaire de serveur.
  2. Dans le volet de hiérarchie de Gestionnaire de serveur, développez Rôles, puis cliquez sur Serveur web (IIS).
  3. Dans le volet Serveur web (IIS), faites défiler jusqu’à la section Services de rôle, puis cliquez sur Ajouter des services de rôle.
  4. Sur la page Sélectionner les services de rôle de l'Assistant Ajout de services de rôle, développez Fonctionnalités HTTP communes, sélectionnez Publication WebDAV, puis cliquez sur Suivant.
    Screenshot of Select Role Services page showing Common H T T P Features node expanded and Web DAV Publishing selected.
  5. Dans la page Confirmer les sélections pour l'installation, cliquez sur Installer.
  6. Dans la page Résultats , cliquez sur Fermer.

Windows 7

  1. Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
  2. Dans Panneau de configuration, cliquez sur Programmes et fonctionnalités, puis sur Activer ou désactiver des fonctionnalités Windows.
  3. Développez internet Information Services, puis des Services World Wide Web, puis Fonctionnalités HTTP courantes.
  4. Sélectionnez Publication WebDAV, puis cliquez sur OK.
    Screenshot displays Common H T T P Features node expanded with Web DAV Publishing highlighted.

Windows Server 2008 ou Windows Vista

Procédure

Comment configurer des propriétés WebDAV pour un site web

  1. Ouvrez le Gestionnaire Internet Information Services (IIS) :

    • Si vous utilisez Windows Server 2012 ou Windows Server 2012 R2 :

      • Dans la barre des tâches, cliquez sur Gestionnaire de serveur, cliquez sur Outils, puis sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows 8 ou Windows 8.1 :

      • Maintenez la touche Windows enfoncée, appuyez sur la lettre X, puis cliquez sur Panneau de configuration.
      • Cliquez sur Outils d'administration, puis double-cliquez sur Gestionnaire des services Internet (IIS).
    • Si vous utilisez Windows Server 2008 ou Windows Server 2008 R2 :

      • Dans la barre des tâches, cliquez sur Démarrer, placez le curseur sur Outils d'administration, puis cliquez sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows Vista ou Windows 7 :

      • Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
      • Double-cliquez sur Outils d'administration, puis double-cliquez sur Gestionnaire des services Internet (IIS).
  2. Dans le volet Connexions, développez le nom du serveur, développez le nœud Sites, puis cliquez sur le nom du site.

  3. Dans le volet Accueil du site, double-cliquez sur Règles de création WebDAV.
    Screenshot of Home pane showing Web DAV Authoring Rules selected.

  4. Lorsque la page Règles de création WebDAV s’affiche, cliquez sur Paramètres WebDAV dans le volet Actions.
    Screenshot of Web DAV Authoring Rules page with Web DAV Settings displayed in the Actions pane.

  5. Lorsque la page Paramètres WebDAV est affichée, spécifiez les options suivantes dans la section Comportement de propriété :

    • Définissez Autoriser les requêtes de propriétés anonymes sur False.

    • Définissez Autoriser les propriétés personnalisées sur True.

    • Définissez Autoriser les requêtes de propriété avec une profondeur infinie sur False.

      Screenshot of Web DAV Settings page with Property Behavior section.

  6. Cliquez sur le bouton de sélection () pour lancer l’éditeur de collection d’espaces de noms.
    Screenshot of Name space Collection Editor dialog box showing web dav dash simple dash prop selected from the drop down list.

  7. Cliquez sur Ajouter, puis choisissez webdav_simple_prop dans la liste déroulante

  8. Spécifiez « * » pour XmlNameSpace, puis cliquez sur OK.

  9. Une fois les étapes précédentes terminées, cliquez sur Appliquer dans le volet Actions.

Configuration

Vous pouvez configurer l’élément <properties> uniquement au niveau du site dans le fichier ApplicationHost.config. Tous les éléments <properties> à d’autres niveaux ou dans les fichiers Web.config sont ignorés.

Attributs

Attribut Description
allowAnonymousPropfind Attribut Boolean facultatif. true si les demandes de propriété WebDAV anonymes sont autorisées ; sinon, false. Important : la plupart des verbes WebDAV nécessitent une authentification. Toutefois, les demandes de propriété WebDAV anonymes peuvent être autorisées pour la compatibilité descendante pour certains clients WebDAV. À moins qu’il n’existe une exigence spécifique pour votre environnement, les demandes de propriété WebDAV anonymes doivent toujours être désactivées, car elles introduisent la possibilité de divulgation d’informations pour un site web. Par exemple, un client WebDAV anonyme peut récupérer une liste de fichiers dans votre application. La valeur par défaut est false.
allowInfinitePropfindDepth Attribut Boolean facultatif.

true si les demandes de propriété WebDAV de profondeur infinie sont autorisées ; sinon, false.

Important : l’autorisation de demandes de propriété WebDAV de profondeur infinie est fortement déconseillée en raison du temps processeur qui peut être nécessaire pour répondre à une demande de propriété WebDAV de profondeur infinie. Cela peut même entraîner un déni de service pour votre application. Sauf s’il existe une exigence spécifique pour votre environnement, les demandes de propriétés WebDAV de profondeur infinie doivent toujours être désactivées.

La valeur par défaut est false.
allowCustomProperties Attribut Boolean facultatif.

true si les propriétés WebDAV personnalisées sont autorisées ; sinon, false.

Remarque : Les propriétés WebDAV personnalisées sont également appelées propriétés « mortes ».

Remarque : Si allowCustomProperties a pour valeur true, mais qu’aucun magasin de propriétés n’est défini ou qu’aucun espace de noms XML n’est défini pour les mappages de magasin de propriétés, aucune propriété personnalisée ne peut être stockée.

La valeur par défaut est true.

Éléments enfants

Élément Description
add Élément facultatif.

Ajoute un mappage pour un espace de noms XML à un fournisseur de propriétés.
clear Élément facultatif.

Efface tous les mappages d’espaces de noms existants.
remove Élément facultatif. Supprime un mappage de la liste des espaces de noms XML aux fournisseurs de propriétés.

Exemple Configuration

L’exemple suivant répertorie un exemple d’élément <webdav> pour le site web par défaut. Cet exemple efface toutes les règles de création existantes, ajoute une règle unique pour le groupe d’administrateurs, active la création WebDAV, spécifie que les fichiers masqués sont autorisés, active les verrous WebDAV et spécifie le fournisseur de verrous, et active les propriétés WebDAV et spécifie l’espace de noms XML par défaut pour le mappage de propriétés.

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

Exemple de code

Les exemples suivants configurent les paramètres de propriété WebDAV afin que les requêtes de propriétés anonymes et de profondeur infinie soient désactivées. Ils activent également les propriétés personnalisées avec l’espace de noms XML par défaut mappé au fournisseur webdav_simple_prop intégré.

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

Remarque

Vous devez veiller à définir le paramètre commit sur apphost quand vous utilisez AppCmd.exe pour configurer ces paramètres. Cela valide les paramètres de configuration dans la section d’emplacement appropriée dans le fichier 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()