Compartilhar via


Propriedades WebDAV <propriedades>

Visão geral

O elemento <properties> do elemento <authoring> define o comportamento de bloqueio para o módulo WebDAV. Mais especificamente, o elemento <properties> contém atributos que definem se as propriedades WebDAV personalizadas estão habilitadas, se solicitações de propriedade anônimas ou infinitas são permitidas e pode conter uma série de elementos <add> que definem mapeamentos para namespaces XML para provedores de armazenamento de propriedades.

Observação

O WebDAV define dois tipos de propriedades:

  • Propriedades "Live": essas propriedades existem no sistema de arquivos subjacente. Por exemplo, o nome e o tamanho do arquivo. Essas propriedades sempre têm suporte.
  • Propriedades "Dead": essas propriedades são definidas pelo usuário e armazenadas em um repositório de propriedades. Por exemplo, o autor de um documento ou o modelo que foi usado.

Para usar propriedades "mortas", você deve definir o allowCustomProperties do elemento <properties> comotrue e definir um mapeamento para um namespace XML para provedor de propriedades a partir da lista de provedores de propriedades definidos na coleção <propertyStores>.

Compatibilidade

Versão Observações
IIS 10.0 O elemento <properties> não foi modificado no IIS 10.0.
IIS 8.5 O elemento <properties> não foi modificado no IIS 8.5.
IIS 8.0 O elemento <properties> não foi modificado no IIS 8.0.
IIS 7.5 O elemento <properties> do elemento <authoring> é fornecido como um recurso do IIS 7.5.
IIS 7.0 O elemento <properties> do elemento <authoring> foi introduzido no WebDAV 7.0, que foi um download separado para o IIS 7.0.
IIS 6,0 N/D

Observação

Os módulos WebDAV 7.0 e WebDAV 7.5 enviados fora de banda para o IIS 7.0, o que exigia o download e a instalação de módulos do seguinte URL:

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

Com o Windows 7 e o Windows Server 2008 R2, o módulo WebDAV 7.5 é fornecido como um recurso para o IIS 7.5, portanto, o download do WebDAV não é mais necessário.

Instalação

Para oferecer suporte à publicação WebDAV para seu servidor Web, você deve instalar o módulo WebDAV. Para fazer isso, execute as etapas a seguir.

Windows Server 2012 R2 ou Windows Server 2012

  1. Na barra de tarefas, clique em Gerenciador do Servidor.
  2. No Gerenciador do Servidor, clique no menu Gerenciar e clique em Adicionar Funções e Recursos.
  3. No assistente Adicionar Funções e Recursos, clique em Avançar. Selecione o tipo de instalação e clique em Avançar. Selecione o servidor de destino e clique em Avançar.
  4. Na página Funções de Servidor, expanda Servidor Web (IIS), expanda Servidor Web, expanda Recursos HTTP Comuns e, em seguida, selecione Publicação WebDAV. Clique em Avançar.
    Screenshot shows Web Server and Common H T T P Features nodes expanded with Web DAV Publishing selected. .
  5. Na página Selecionar recursos, clique em Avançar.
  6. Na página Confirmar seleções de instalação, clique em Instalar.
  7. Na página Resultados , clique em Fechar.

Windows 8 ou Windows 8.1

  1. Na tela Iniciar, mova o ponteiro até o canto inferior esquerdo, clique com o botão direito do mouse no botão Iniciar e clique em Painel de Controle.
  2. Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar recursos do Windows.
  3. Expanda Serviços de Informações da Internet, Serviços da World Wide Web, Recursos HTTP Comuns e selecione Publicação 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. Clique em OK.
  5. Clique em Fechar.

Windows Server 2008 R2

  1. Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador do Servidor.
  2. No painel de hierarquia do Gerenciador do Servidor, expanda Funções e clique em Servidor Web (IIS).
  3. No painel Servidor Web (IIS), role até a seção Serviços de Função e clique em Adicionar Serviços de Função.
  4. Na página Selecionar Serviços de Função do Assistente para Adicionar Serviços de Função, expanda Recursos HTTP Comuns, selecione Publicação WebDAV e clique em Avançar.
    Screenshot of Select Role Services page showing Common H T T P Features node expanded and Web DAV Publishing selected.
  5. Na página Confirmar Seleções de Instalação, clique em Instalar.
  6. Na página Resultados , clique em Fechar.

Windows 7

  1. Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
  2. Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar Recursos do Windows.
  3. Expanda Serviços de Informações da Internet e, em seguida, Serviços World Wide Web e, em seguida, Recursos HTTP Comuns.
  4. Selecione Publicação WebDAV e clique em OK.
    Screenshot displays Common H T T P Features node expanded with Web DAV Publishing highlighted.

Windows Server 2008 ou Windows Vista

Instruções

Como configurar propriedades WebDAV para um site

  1. Abra o Gerenciador dos Serviços de Informações da Internet (IIS):

    • Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:

      • Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows 8 ou Windows 8.1:

      • Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
      • Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:

      • Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows Vista ou Windows 7:

      • Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
      • Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
  2. No painel Conexões, expanda o nome do servidor, expanda o nó Sites e clique no nome do site.

  3. No painel Página Inicial do site, clique duas vezes em Regras de Criação WebDAV.
    Screenshot of Home pane showing Web DAV Authoring Rules selected.

  4. Quando a página Regras de Criação do WebDAV for exibida, clique em Configurações do WebDAV no painel Ações.
    Screenshot of Web DAV Authoring Rules page with Web DAV Settings displayed in the Actions pane.

  5. Quando a página Configurações do WebDAV for exibida, especifique as seguintes opções na seção Comportamento da Propriedade:

    • Defina Permitir consultas de propriedade anônima como False.

    • Defina Permitir propriedades personalizadas como True.

    • Defina Permitir consultas de propriedade com profundidade infinita como False.

      Screenshot of Web DAV Settings page with Property Behavior section.

  6. Clique no botão de reticências (...) para iniciar o Editor de Coleção do Namespace.
    Screenshot of Name space Collection Editor dialog box showing web dav dash simple dash prop selected from the drop down list.

  7. Clique em Adicionar e escolha webdav_simple_prop na lista suspensa

  8. Especifique "*" para o XmlNameSpace e, em seguida, clique em OK.

  9. Depois de concluir as etapas anteriores, clique em Aplicar no painel Ações.

Configuração

O elemento <properties> só é configurável no nível do site no arquivo ApplicationHost.config. Quaisquer elementos <properties> em outros níveis ou em arquivos Web.config são ignorados.

Atributos

Atributo Descrição
allowAnonymousPropfind Atributo Boolean opcional. true se solicitações anônimas de propriedade WebDAV forem permitidas; caso contrário, false. Importante: a maioria dos verbos WebDAV requer autenticação, no entanto, solicitações anônimas de propriedade WebDAV podem ser permitidas para compatibilidade com versões anteriores para alguns clientes WebDAV. A menos que haja um requisito específico para seu ambiente, as solicitações de propriedade WebDAV anônimas devem sempre ser desabilitadas porque introduzem a chance de divulgação de informações para um site. Por exemplo, um cliente WebDAV anônimo pode recuperar uma lista de arquivos em seu aplicativo. O valor padrão é false.
allowInfinitePropfindDepth Atributo Boolean opcional.

true se solicitações com profundidade infinita de propriedade WebDAV forem permitidas; caso contrário, false.

Importante: a permissão de solicitações de propriedade WebDAV de profundidade infinita é fortemente desencorajada devido à quantidade de tempo de CPU que pode ser necessária para atender a uma solicitação de propriedade WebDAV de profundidade infinita. Isso pode até causar uma negação de serviço para seu aplicativo. A menos que haja um requisito específico para seu ambiente, as solicitações de propriedade WebDAV de profundidade infinita devem sempre ser desabilitadas.

O valor padrão é false.
allowCustomProperties Atributo Boolean opcional.

true se propriedades WebDAV personalizadas forem permitidas; caso contrário, false.

Observação: as propriedades WebDAV personalizadas também são conhecidas como propriedades "mortas".

Observação: se allowCustomProperties estiver definido como true, mas nenhum repositório de propriedades estiver definido ou não houver nenhum namespace XML para mapeamentos de repositório de propriedades, nenhuma propriedade personalizada poderá ser armazenada.

O valor padrão é true.

Elementos filho

Elemento Descrição
add Elemento opcional.

Adiciona um mapeamento para um namespace de XML a um provedor de propriedades.
clear Elemento opcional.

Limpa todos os mapeamentos de namespace existentes.
remove Elemento opcional. Remove um mapeamento da lista de namespaces de XML para provedores de propriedades.

Exemplo de configuração

O exemplo a seguir lista um elemento <webdav> de exemplo para o site padrão. Este exemplo limpa todas as regras de criação existentes, adiciona uma única regra para o grupo de administradores, habilita a criação de WebDAV, especifica que arquivos ocultos são permitidos, habilita bloqueios WebDAV e especifica o provedor de bloqueio, habilita propriedades WebDAV e especifica o namespace XML padrão para mapeamento de propriedades.

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

Exemplo de código

Os exemplos a seguir definem as configurações da propriedade WebDAV para que as consultas de propriedade anônima e de profundidade infinita sejam desabilitadas e habilitem propriedades personalizadas com o namespace XML padrão mapeado para o provedor de webdav_simple_prop interno.

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

Observação

Defina o parâmetro commit para apphost quando usar AppCmd.exe para definir essas configurações. Isso confirma as definições de configuração para a seção de local apropriado no arquivo 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()