Propiedades de WebDAV <propiedades>
Información general
El elemento <properties>
del elemento <authoring>
define el comportamiento de bloqueo para el módulo WebDAV. Más concretamente, el elemento <properties>
contiene atributos que definen si las propiedades personalizadas de WebDAV están habilitadas, ya sean solicitudes de propiedades anónimas o infinitas, y pueden contener una serie de elementos <add>
que definen asignaciones para espacios de nombres XML a proveedores de almacén de propiedades.
Nota:
WebDAV define dos tipos de propiedades:
- Propiedades "Live": estas propiedades existen en el sistema de archivos subyacente. Por ejemplo, el nombre de archivo y el tamaño del archivo. Estas propiedades siempre se admiten.
- Propiedades "Dead": estas propiedades están definidas por el usuario y se almacenan en un almacén de propiedades. Por ejemplo, el autor de un documento o la plantilla que se usó.
Para usar propiedades "dead", debe establecer el allowCustomProperties
del elemento <properties>
en true y definir una asignación para un espacio de nombres XML a proveedor de propiedades de la lista de proveedores de propiedades definidos en la colección <propertyStores>.
Compatibilidad
Versión | Notas |
---|---|
IIS 10.0 | El elemento <properties> no se modificó en IIS 10.0. |
IIS 8.5 | El elemento <properties> no se modificó en IIS 8.5. |
IIS 8.0 | El elemento <properties> no se modificó en IIS 8.0. |
IIS 7.5 | El elemento <properties> del elemento <authoring> se incluye como una característica de IIS 7.5. |
IIS 7.0 | El elemento <properties> del elemento <authoring> 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
Configuración de propiedades de WebDAV para un sitio web
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, expanda el nodo Sitios y, después, haga clic en el nombre del sitio.
En el panel Inicio del sitio, haga doble clic en Reglas de creación de WebDAV.
Cuando se muestre la página Reglas de creación de WebDAV, haga clic en Configuración de WebDAV del panel Acciones.
Cuando aparezca la página Configuración de WebDAV, especifique las siguientes opciones en la sección Comportamiento de propiedades:
Establezca Permitir consultas de propiedades anónimas en False.
Establezca Permitir propiedades personalizadas en True.
Establezca Permitir consultas de propiedad con profundidad infinita en False.
Haga clic en el botón de puntos suspensivos (...) para iniciar el Editor de colección de espacios de nombres.
Haga clic en Agregar y elija webdav_simple_prop en la lista desplegable
Especifique "*" para XmlNameSpace y haga clic en Aceptar.
Una vez que haya finalizado los pasos anteriores, haga clic en Aplicar en el panel Acciones.
Configuración
El elemento <properties>
solo se puede configurar en el nivel de sitio en el archivo ApplicationHost.config. Los elementos <properties>
en otros niveles o en archivos Web.config se omiten.
Atributos
Atributo | Descripción |
---|---|
allowAnonymousPropfind |
Atributo Boolean opcional. verdadero si se permiten solicitudes anónimas de propiedad WebDAV; De lo contrario, false. Importante: la mayoría de los verbos WebDAV requieren autenticación. Sin embargo, se pueden permitir solicitudes de propiedades WebDAV anónimas para la compatibilidad con versiones anteriores para algunos clientes de WebDAV. A menos que haya un requisito específico para su entorno, las solicitudes de propiedades WebDAV anónimas siempre deben deshabilitarse porque presentan la posibilidad de divulgación de información para un sitio web. Por ejemplo, un cliente WebDAV anónimo puede recuperar una lista de archivos en la aplicación. El valor predeterminado es false . |
allowInfinitePropfindDepth |
Atributo Boolean opcional. true si se permiten solicitudes de propiedad WebDAV de profundidad infinita; de lo contrario, false. Importante: Se recomienda encarecidamente permitir solicitudes de propiedades WebDAV de profundidad infinita debido a la cantidad de tiempo de CPU que puede ser necesario para cumplir una solicitud de propiedad WebDAV de profundidad infinita. Esto podría incluso provocar una denegación de servicio para la aplicación. A menos que haya un requisito específico para su entorno, las solicitudes de propiedades WebDAV de profundidad infinita siempre deben deshabilitarse. El valor predeterminado es false . |
allowCustomProperties |
Atributo Boolean opcional. true si se permiten propiedades webDAV personalizadas; de lo contrario, false. Nota: Las propiedades personalizadas de WebDAV también se conocen como propiedades "inactivas". Nota: Si allowCustomProperties se establece en true, pero no se define ningún almacén de propiedades o no hay ningún espacio de nombres XML para las asignaciones del almacén de propiedades, no se puede almacenar ninguna propiedad personalizada.El valor predeterminado es true . |
Elementos secundarios
Elemento | Descripción |
---|---|
add |
Elemento opcional. Agrega una asignación para un espacio de nombres XML a un proveedor de propiedades. |
clear |
Elemento opcional. Borra todas las asignaciones de espacios de nombres existentes. |
remove |
Elemento opcional. Quita una asignación de la lista de espacios de nombres XML a proveedores de propiedades. |
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 las opciones de propiedades de WebDAV para que las consultas de propiedades de profundidad anónimas e infinitas estén deshabilitadas y habilite las propiedades personalizadas con el espacio de nombres XML predeterminado asignado al proveedor de webdav_simple_prop integrado.
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
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 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()