WebDAV 속성 <속성>
개요
<properties>
요소의 <authoring>
요소는 WebDAV 모듈에 대한 잠금 동작을 정의합니다. 더 구체적으로 말하자면, <properties>
요소에는 사용자 지정 WebDAV 속성의 사용 여부, 익명 또는 무한 속성 요청이 허용되는지 여부를 정의하는 특성이 포함되어 있으며 XML 네임스페이스에 대한 매핑을 속성 저장소 공급자에 정의하는 일련의 <add>
요소가 포함될 수 있습니다.
참고
WebDAV는 두 가지 유형의 속성을 정의합니다.
- "라이브" 속성: 이러한 속성은 기본 파일 시스템에 있습니다. 예를 들어 파일 이름 및 파일 크기입니다. 이러한 속성은 항상 지원됩니다.
- "Dead" 속성: 이러한 속성은 사용자 정의이며 속성 저장소에 저장됩니다. 예를 들어 문서의 작성자 또는 사용된 서식 파일입니다.
"dead" 속성을 사용하려면 요소의 <properties>
를 allowCustomProperties
true로 설정하고 propertyStores> 컬렉션에 정의된 속성 공급자 목록에서 XML 네임스페이스에 대한 매핑을 속성 공급자로< 정의해야 합니다.
호환성
버전 | 참고 |
---|---|
IIS 10.0 | <properties> 요소가 IIS 10.0에서 수정되지 않았습니다. |
IIS 8.5 | <properties> 요소가 IIS 8.5에서 수정되지 않았습니다. |
IIS 8.0 | <properties> 요소가 IIS 8.0에서 수정되지 않았습니다. |
IIS 7.5 | <properties> 요소의 <authoring> 요소는 IIS 7.5의 기능으로 제공됩니다. |
IIS 7.0 | <properties> 요소의 <authoring> 요소는 IIS 7.0에 대한 별도의 다운로드인 WebDAV 7.0에서 도입되었습니다. |
IIS 6.0 | 해당 없음 |
참고
WebDAV 7.0 및 WebDAV 7.5 모듈은 IIS 7.0용 대역 외로 제공되었으며, 다음 URL에서 모듈을 다운로드하고 설치해야 했습니다.
Windows 7 및 Windows Server 2008 R2에서는 WebDAV 7.5 모듈이 IIS 7.5의 기능으로 제공됩니다. 따라서 WebDAV를 더 이상 다운로드할 필요가 없습니다.
설치 프로그램
웹 서버에 대한 WebDAV 게시를 지원하려면 WebDAV 모듈을 설치해야 합니다. 이렇게 하려면 다음 단계를 수행합니다.
Windows Server 2012 또는 Windows Server 2012 R2
- 작업 표시줄에서 서버 관리자를 클릭합니다.
- 서버 관리자관리 메뉴를 클릭한 다음 역할 및 기능 추가를 클릭합니다.
- 역할 및 기능 추가 마법사에서 다음을 클릭합니다. 설치 유형을 선택하고 다음을 클릭합니다. 대상 서버를 선택하고 다음을 클릭합니다.
- 서버 역할 페이지에서 웹 서버(IIS)를 확장하고, 웹 서버를 확장하고, 일반적인 HTTP 기능을 확장한 다음, WebDAV 게시를 선택합니다. 다음을 클릭합니다.
. - 기능 선택 페이지에서 다음을 클릭합니다.
- 설치 선택 확인 페이지에서 설치를 클릭합니다.
- Results(결과) 페이지에서 Close(닫기)를 클릭합니다.
Windows 8 또는 Windows 8.1
- 시작 화면에서 포인터를 왼쪽 아래 모서리로 이동하고 시작 단추를 마우스 오른쪽 단추로 클릭한 다음 제어판 클릭합니다.
- 제어판프로그램 및 기능을 클릭한 다음 Windows 기능 켜기 또는 끄기를 클릭합니다.
- 인터넷 정보 서비스를 확장하고 World Wide Web Services를 확장하고 일반적인 HTTP 기능을 확장한 다음 WebDAV 게시를 선택합니다.
- 확인을 클릭합니다.
- 닫기를 클릭합니다.
Windows Server 2008 R2
- 작업 표시줄에서 시작을 클릭하고 관리 도구를 가리킨 다음 서버 관리자 클릭합니다.
- 서버 관리자 계층 창에서 역할을 확장한 다음 웹 서버(IIS)를 클릭합니다.
- 웹 서버(IIS) 창에서 역할 서비스 섹션으로 스크롤한 다음 역할 서비스 추가를 클릭합니다.
- 역할 서비스 추가 마법사의 역할 서비스 선택 페이지에서 일반적인 HTTP 기능을 확장하고 WebDAV 게시를 선택한 후 다음을 클릭합니다.
- 설치 선택 확인 페이지에서 설치를 클릭합니다.
- Results(결과) 페이지에서 Close(닫기)를 클릭합니다.
Windows 7
- 작업 표시줄에서 시작을 클릭한 다음 제어판 클릭합니다.
- 제어판프로그램 및 기능을 클릭한 다음 Windows 기능 켜기 또는 끄기를 클릭합니다.
- 인터넷 정보 서비스, World Wide Web Services, 일반 HTTP 기능을 차례로 확장합니다.
- WebDAV 게시를 선택한 다음 확인을 클릭합니다.
Windows Server 2008 또는 Windows Vista
다음 URL에서 설치 패키지를 다운로드합니다.
다음 연습의 지침에 따라 WebDAV 모듈을 설치합니다.
방법
웹 사이트에 대한 WebDAV 속성을 구성하는 방법
IIS(인터넷 정보 서비스) 관리자를 엽니다.
Windows Server 2012 또는 Windows Server 2012 R2를 사용하는 경우:
- 작업 표시줄에서 서버 관리자 클릭하고 도구를 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 클릭합니다.
Windows 8 또는 Windows 8.1 사용하는 경우:
- Windows 키를 누른 채로 문자 X를 누른 다음 제어판 클릭합니다.
- 관리 도구를 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 두 번 클릭합니다.
Windows Server 2008 또는 Windows Server 2008 R2를 사용하는 경우:
- 작업 표시줄에서 시작을 클릭하고 관리 도구를 가리킨 다음 IIS(인터넷 정보 서비스) 관리자를 클릭합니다.
Windows Vista 또는 Windows 7을 사용하는 경우:
- 작업 표시줄에서 시작을 클릭한 다음 제어판 클릭합니다.
- 관리 도구를 두 번 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 두 번 클릭합니다.
연결 창에서 서버 이름을 확장하고 사이트 노드를 확장한 다음 사이트 이름을 클릭합니다.
사이트의 홈 창에서 WebDAV 작성 규칙을 두 번 클릭합니다.
WebDAV 작성 규칙 페이지가 표시되면 작업 창에서 WebDAV 설정을 클릭합니다.
WebDAV 설정 페이지가 표시되면 속성 동작 섹션에서 다음 옵션을 지정합니다.
익명 속성 쿼리 허용을False로 설정합니다.
사용자 지정 속성 허용을 True로 설정합니다.
무한 깊이의 속성 쿼리 허용을False로 설정합니다.
줄임표(...) 단추를 클릭하여 네임스페이스 컬렉션 편집기를 시작합니다.
추가를 클릭한 다음 드롭다운 목록에서 webdav_simple_prop 선택합니다.
XmlNameSpace에 "*"를 지정한 다음 확인을 클릭합니다.
이전 단계를 완료했으면 작업 창에서 적용을 클릭합니다.
구성
요소는 <properties>
ApplicationHost.config 파일의 사이트 수준에서만 구성할 수 있습니다. 다른 수준 또는 Web.config 파일의 모든 <properties>
요소는 무시됩니다.
특성
attribute | Description |
---|---|
allowAnonymousPropfind |
선택적 부울 특성입니다. 익명 WebDAV 속성 요청이 허용되면 true이고, 그렇지 않으면 false입니다. 중요: 대부분의 WebDAV 동사에는 인증이 필요합니다. 그러나 일부 WebDAV 클라이언트에 대해 이전 버전과의 호환성을 위해 익명 WebDAV 속성 요청을 허용할 수 있습니다. 사용자 환경에 대한 특정 요구 사항이 없는 한 익명 WebDAV 속성 요청은 웹 사이트에 대한 정보 공개 가능성을 도입하기 때문에 항상 사용하지 않도록 설정해야 합니다. 예를 들어 익명 WebDAV 클라이언트는 애플리케이션의 파일 목록을 검색할 수 있습니다. 기본값은 false 입니다. |
allowInfinitePropfindDepth |
선택적 부울 특성입니다. 무 한 깊이 WebDAV 속성 요청이 허용되는 경우 true이고, 그렇지 않으면 false입니다. 중요: 무한 깊이 WebDAV 속성 요청을 수행하는 데 필요한 CPU 시간으로 인해 무한 깊이 WebDAV 속성 요청을 허용하는 것은 매우 권장되지 않습니다. 이로 인해 애플리케이션에 대한 서비스 거부가 발생할 수도 있습니다. 환경에 대한 특정 요구 사항이 없는 한 무한 깊이의 WebDAV 속성 요청은 항상 사용하지 않도록 설정해야 합니다. 기본값은 false 입니다. |
allowCustomProperties |
선택적 부울 특성입니다. 사용자 지정 WebDAV 속성이 허용되면 true이고, 그렇지 않으면 false입니다. 참고: 사용자 지정 WebDAV 속성을 "데드" 속성이라고도 합니다. 참고: 가 true로 설정되었지만 속성 저장소가 정의되지 않거나 속성 저장소 매핑에 대한 XML 네임스페이스가 없는 경우 allowCustomProperties 사용자 지정 속성을 저장할 수 없습니다.기본값은 true 입니다. |
자식 요소
요소 | Description |
---|---|
add |
선택적 요소입니다. XML 네임스페이스에 대한 매핑을 속성 공급자에 추가합니다. |
clear |
선택적 요소입니다. 기존 네임스페이스 매핑을 모두 지웁니다. |
remove |
선택적 요소입니다. XML 네임스페이스 목록에서 속성 공급자로의 매핑을 제거합니다. |
구성 샘플
다음 예제에서는 기본 웹 사이트에 대한 샘플 <webdav>
요소를 나열합니다. 다음은 기존 작성 규칙을 지우고, 관리자 그룹에 대한 단일 규칙을 추가하고, WebDAV 작성을 사용하도록 설정하고, 숨겨진 파일이 허용되도록 지정하고, WebDAV 잠금을 사용하도록 설정하고, 잠금 공급자를 지정하고, WebDAV 속성을 사용하도록 설정하고, 속성 매핑에 대한 기본 XML 네임스페이스를 지정하는 예제입니다.
<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>
샘플 코드
다음 예제에서는 익명 및 무한 깊이 속성 쿼리를 모두 사용하지 않도록 WebDAV 속성 설정을 구성하고 기본 제공 webdav_simple_prop 공급자에 매핑된 기본 XML 네임스페이스를 사용하여 사용자 지정 속성을 사용하도록 설정합니다.
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
참고
AppCmd.exe 사용하여 이러한 설정을 구성할 때 commit 매개 변수 apphost
를 로 설정해야 합니다. 그러면 구성 설정이 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()