Reglas de creación de WebDAV <authoringRules>
Información general
El elemento <authoringRules>
se puede definir por URI dentro de un sitio web y especifica los permisos de creación de WebDAV para ese espacio de URI. Los permisos de este elemento se heredan, por lo que los URI secundarios tendrán los mismos permisos que un URI primario, siempre que el URI secundario no tenga permisos únicos definidos.
El elemento contiene una serie de elementos <add>
que definen las reglas de creación individuales, que contienen los permisos de acceso para usuarios o grupos para tipos de contenido específicos.
Las reglas de creación de WebDAV pueden parecer algo análogas a la configuración de autorización que se encuentran en el elemento <authorization>
, pero se almacenan por separado para que IIS mantenga dos conjuntos de autorización diferentes: uno para las solicitudes HTTP normales (no webDAV) y la otra para las solicitudes webDAV.
Compatibilidad
Versión | Notas |
---|---|
IIS 10.0 | El elemento <authoringRules> no se modificó en IIS 10.0. |
IIS 8.5 | El elemento <authoringRules> no se modificó en IIS 8.5. |
IIS 8.0 | El elemento <authoringRules> no se modificó en IIS 8.0. |
IIS 7.5 | El elemento <authoringRules> se incluye como una característica de IIS 7.5. |
IIS 7.0 | El elemento <authoringRules> se introdujo en WebDAV 7.0, que era una descarga independiente para IIS 7.0. |
IIS 6,0 | N/D |
Nota:
Los módulos WebDAV 7.0 y WebDAV 7.5 enviados fuera de banda para IIS 7.0, que requerían descargar e instalar los módulos desde la siguiente dirección URL:
Con Windows 7 y Windows Server 2008 R2, el módulo WebDAV 7.5 se incluye como una característica para IIS 7.5, por lo que la descarga de WebDAV ya no es necesaria.
Configuración
Para admitir la publicación de WebDAV para el servidor web, debe instalar el módulo WebDAV. Para ello, siga estos pasos.
Windows Server 2012 o Windows Server 2012 R2
- En la barra de tareas, haga clic en Administrador del servidor.
- En Administrador del servidor, haga clic en el menú Administrar y, después, haga clic en Agregar roles y características.
- En el asistente para Agregar roles y características, haga clic en Siguiente. Seleccione el tipo de instalación y haga clic en Siguiente. Seleccione el servidor de destino y haga clic en Siguiente.
- En la página Roles de servidor, expanda Servidor web (IIS), expanda Servidor web, expanda Características HTTP comunes y después seleccione Publicación de WebDAV. Haga clic en Next.
- En la página Seleccionar características, haz clic en Siguiente.
- En la página Confirmar selecciones de instalación, haga clic en Instalar.
- En la página Resultados , haga clic en Cerrar.
Windows 8 o Windows 8.1
- En la pantalla Inicio, mueva el puntero hasta la esquina inferior izquierda, haga clic con el botón derecho en el botón Inicio y, a continuación, haga clic en Panel de control.
- En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.
- Expanda Internet Information Services, expanda World Wide Web Services, expanda Características HTTP comunes, y después seleccione Publicación de WebDAV.
- Haga clic en OK.
- Haga clic en Cerrar.
Windows Server 2008 R2
- En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, luego, haga clic en Administrador del servidor.
- En el panel de jerarquía del Administrador del servidor, expanda Roles y, luego, haga clic en Servidor web (IIS).
- En el panel Servidor web (IIS), desplácese hasta la sección Servicios de rol y, luego, haga clic en Agregar servicios de rol.
- En la página Seleccionar servicios de rol del Asistente para agregar servicios de rol, expanda Características HTTP comunes, seleccione Publicación de WebDAV y después haga clic en Siguiente.
- En la página Confirmar selecciones de instalación, haz clic en Instalar.
- En la página Resultados , haga clic en Cerrar.
Windows 7
- En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
- En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.
- Expanda Internet Information Services, después World Wide Web Services y, a continuación, Características HTTP comunes.
- Seleccione Publicación de WebDAV y, a continuación, haga clic en Aceptar.
Windows Server 2008 o Windows Vista
Descargue el paquete de instalación desde la siguiente dirección URL:
Siga las instrucciones del siguiente tutorial para instalar el módulo de WebDAV:
Procedimientos
Adición de reglas de creación de WebDAV
Abra el Administrador de Internet Information Services (IIS):
Si usa Windows Server 2012 o Windows Server 2012 R2:
- En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
Si usa Windows 8 o Windows 8.1:
- Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
- En Panel de control, haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
Si usa Windows Server 2008 o Windows Server 2008 R2:
- En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
Si usa Windows Vista o Windows 7:
- En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
- Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
En el panel Conexiones, expanda el nombre del servidor y vaya al sitio, la aplicación o el directorio donde desea habilitar la exploración de directorios.
En el panel Inicio, haga doble clic en Reglas de creación de WebDAV.
En el panel Acciones, haga clic en Agregar regla de creación....
En el cuadro de diálogo Agregar regla de creación, especifique las siguientes opciones:
- Permitir acceso a: especifique si la regla de creación debe aplicarse a todos los tipos de contenido o especifique tipos de contenido específicos que se van a permitir.
- Permitir el acceso a este contenido a: especifique si la regla de creación debe aplicarse a todos los usuarios, a grupos o roles específicos o a usuarios específicos.
- Permisos: especifique si la regla de creación debe permitir el acceso de Lectura, Escritura u Origen para los tipos de contenido y usuarios especificados.
Haga clic en OK.
Configuración
El elemento <authoringRules>
es configurable por URI en el archivo ApplicationHost.config. La configuración se puede almacenar globalmente, en el nivel de sitio o por carpeta. No se puede delegar el elemento <authoringRules>
, por lo que se omiten los elementos <authoringRules>
de los archivos Web.config.
Atributos
Atributo | Descripción | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
defaultAccess |
Atributo flags opcional. Especifica la configuración de acceso predeterminada para la creación de WebDAV. Estos valores se combinan con una operación OR lógica, por lo que "None, Read" = "Read". Nota: Source el acceso permite a un cliente webDAV solicitar el contenido de un archivo asignado a scripts, como un archivo ASP.NET o PHP, en lugar de la salida procesada del archivo.El valor predeterminado es None .
|
||||||||||
allowNonMimeMapFiles |
Atributo Boolean opcional. true si se deben permitir solicitudes de WebDAV para archivos que no están definidos en el mapa MIME; de lo contrario, false. Por ejemplo, los archivos asignados a scripts no se definen en el mapa MIME, pero es posible que los autores web todavía necesiten editar estos archivos, que no se permiten en las solicitudes IIS de forma predeterminada. Cuando se establece en true, el módulo WebDAV aceptará solicitudes de archivos que no se incluyen en el mapa MIME. Cuando se establece en false, el módulo requerirá que todos los archivos se encuentren en el mapa MIME y devuelvan un error "404.3: la directiva de mapa MIME impide esta solicitud" para cualquier solicitud que no coincida con la lista MIME. El valor predeterminado es false . |
||||||||||
defaultMimeType |
Atributo de cadena opcional. Especifica el tipo MIME predeterminado para los archivos que no tienen definido un tipo MIME explícito. El valor predeterminado es application/octet-stream . |
Elementos secundarios
Elemento | Descripción |
---|---|
add |
Elemento opcional. Agrega una regla de creación a la colección de reglas de creación. |
clear |
Elemento opcional. Borra la colección de reglas de creación. |
remove |
Elemento opcional. Quita una regla de creación de la colección de reglas de creación. |
Ejemplo de configuración
En el ejemplo siguiente se muestra un elemento de ejemplo <webdav>
para el sitio web predeterminado. En este ejemplo se borran las reglas de creación existentes, se agrega una sola regla para el grupo de administradores, se habilita la creación de WebDAV, se especifica que se permiten archivos ocultos, se habilitan los bloqueos de WebDAV, se especifica el proveedor de bloqueos, se habilitan las propiedades de WebDAV y se especifica el espacio de nombres XML predeterminado para la asignación de propiedades.
<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>
Código de ejemplo
En los ejemplos siguientes se configuran reglas de creación de WebDAV para que los clientes de WebDAV puedan publicar archivos que no aparecen en la asignación de MIME de IIS y agregar una sola regla de creación que conceda acceso de lectura, escritura y origen al grupo de administradores.
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
Nota:
Debe asegurarse de establecer el parámetro de confirmación en apphost
cuando use AppCmd.exe para configurar estas opciones. Esto confirma los valores de configuración en la sección de ubicación adecuada del archivo 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()