Compartilhar via


Regras de criação do WebDAV <authoringRules>

Visão geral

O elemento <authoringRules> pode ser definido por URI em um site e especificam as permissões de criação do WebDAV para esse espaço de URI. As permissões nesse elemento são herdadas. Portanto, os URIs filho terão as mesmas permissões que um URI pai, contanto que o URI filho não tenha permissões exclusivas definidas.

O elemento contém uma série de elementos <add> que definem as regras de criação individuais, que contêm as permissões de acesso para usuários ou grupos para tipos de conteúdo específicos.

As regras de criação do WebDAV podem parecer um pouco análogas às configurações de autorização encontradas no elemento <authorization>, mas são armazenadas separadamente para que o IIS mantenha dois conjuntos diferentes de autorização: um para solicitações HTTP regulares (não WebDAV) e outro para solicitações WebDAV.

Compatibilidade

Versão Observações
IIS 10.0 O elemento <authoringRules> não foi modificado no IIS 10.0.
IIS 8.5 O elemento <authoringRules> não foi modificado no IIS 8.5.
IIS 8.0 O elemento <authoringRules> não foi modificado no IIS 8.0.
IIS 7.5 O elemento <authoringRules> é fornecido como um recurso do IIS 7.5.
IIS 7.0 O elemento <authoringRules> 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.
    Captura de tela que mostra a Publicação de DAV da Web selecionada para o Windows Server 2012.
  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.
    Captura de tela que mostra a publicação de DAV na Web selecionada para Windows 8.
  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.
    Captura de tela que mostra a publicação de DAV na Web selecionada para o Windows Server 2008.
  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.
    Captura de tela que mostra a publicação de DAV na Web selecionada para o Windows 7.

Windows Server 2008 ou Windows Vista

Instruções

Como adicionar regras de criação do WebDAV

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

    • 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 do IIS (Serviços de Informações da Internet).
    • 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 do IIS (Serviços de Informações da Internet).
    • 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 do IIS (Serviços de Informações da Internet).
    • Se você estiver usando o Windows Vista ou Windows 7:

      • Na barra de tarefas, selecione Iniciar e selecione 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 e vá para o site, aplicativo ou diretório em que deseja habilitar a pesquisa no diretório.

  3. No painel Página Inicial, clique duas vezes em Regras de Criação WebDAV.
    Captura de tela que mostra o painel inicial do site padrão. Regras de Criação de DAV da Web está selecionado.

  4. No painel Ações, clique em Adicionar Regra de Criação...
    Captura de tela que mostra o painel Regras de Criação de DAV da Web.

  5. Na caixa de diálogo Adicionar Regra de Criação, especifique as seguintes opções:

    • Permitir acesso a: especifique se a regra de criação deve se aplicar a todos os tipos de conteúdo ou especifique os tipos de conteúdo específicos a serem permitidos.
    • Permitir acesso a este conteúdo: especifique se a regra de criação deve ser aplicada a todos os usuários, a grupos ou funções específicas ou a usuários específicos.
    • Permissões: especifique se a regra de criação deve permitir acesso de Leitura, Gravação ou Origem para os usuários e tipos de conteúdo especificados.
      Captura de tela que mostra a caixa de diálogo Adicionar Função de Criação. Todo o conteúdo é selecionado.
  6. Clique em OK.

Configuração

O elemento <authoringRules> é configurável por URI no arquivo ApplicationHost.config. As configurações podem ser armazenadas globalmente, no nível do site ou por pasta. O elemento <authoringRules> não pode ser delegado. Portanto, todos os elementos <authoringRules> nos arquivos Web.config são ignorados.

Atributos

Atributo Descrição
defaultAccess Atributo de sinalizadores opcionais.

Especifica as configurações de acesso padrão para criação de WebDAV. Esses valores combinados com uma operação OR lógica, portanto, “None, Read” = “Read”.

Observação: Source o acesso permite que um cliente WebDAV solicite o conteúdo de um arquivo mapeado por script, como um arquivo ASP.NET ou PHP, em oposição à saída processada do arquivo.

O valor padrão é None.

Valor Descrição
None Nenhuma criação é permitida.

O valor numérico é 0.
Read O acesso de leitura é permitido.

O valor numérico é 1.
Write O acesso de gravação é permitido.

O valor numérico é 2.
Source O acesso ao código-fonte é permitido.

O valor numérico é 16.
allowNonMimeMapFiles Atributo Boolean opcional. true se as solicitações WebDAV devem ser permitidas para arquivos que não estão definidos no mapa MIME; caso contrário, false. Por exemplo, os arquivos mapeados por script não são definidos no mapa MIME, mas os autores da Web ainda podem precisar editar esses arquivos, que não são permitidos em solicitações do IIS por padrão. Quando definido como true, o módulo WebDAV aceitará solicitações de arquivos que não estão incluídos no mapa MIME. Quando definido como false, o módulo exigirá que todos os arquivos sejam encontrados no mapa MIME e retornará um erro “404.3 - a política de mapa MIME impede esta solicitação” para qualquer solicitação que não corresponda à lista MIME. O valor padrão é false.
defaultMimeType Atributo de cadeia de caracteres opcional.

Especifica o tipo MIME padrão para arquivos que não têm tipos MIME explícitos definidos.

O valor padrão é application/octet-stream.

Elementos filho

Elemento Descrição
add Elemento opcional.

Adiciona uma regra de criação à coleção de regras de criação.
clear Elemento opcional.

Limpa a coleção de regras de criação.
remove Elemento opcional.

Remove uma regra de criação da coleção de regras de criação.

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 do 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 configuram regras de criação do WebDAV para que os clientes WebDAV possam publicar arquivos que não estejam listados no mapa MIME do IIS e adicionar uma única regra de criação que conceda acesso de leitura, gravação e origem ao grupo administrators.

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

Observação

Defina o parâmetro commit para apphost quando usar AppCmd.exe para definir essas configurações. Isso confirma os conjuntos de configurações 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 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()