次の方法で共有


WebDAV オーサリング規則 <authoringRules>

概要

<authoringRules> 要素は Web サイト内で URI ごとに定義でき、その URI 空間に対する WebDAV オーサリング アクセス許可を指定します。 この要素のアクセス許可は、子 URI に一意のアクセス許可が定義されていない場合は継承され、子 URI は親 URI と同じアクセス許可を持ちます。

<add> 要素には、個々のオーサリング規則を定義する一連の要素が含まれています。この規則には、特定のコンテンツ タイプのユーザーまたはグループに対するアクセス許可が含まれます。

WebDAV オーサリング規則は、<authorization> 要素内にある認可設定に多少似ているように見えるかもしれませんが、IIS が通常の HTTP (非 WebDAV) 要求用と WebDAV 要求用の 2 つの異なる認可セットを保持するように個別に格納されます。

互換性

バージョン メモ
IIS 10.0 <authoringRules> 要素は、IIS 10.0 では変更されませんでした。
IIS 8.5 <authoringRules> 要素は、IIS 8.5 では変更されませんでした。
IIS 8.0 <authoringRules> 要素は IIS 8.0 では変更されませんでした。
IIS 7.5 <authoringRules> 要素は、IIS 7.5 の機能として付属しています。
IIS 7.0 <authoringRules> 要素は、IIS 7.0 用の別個のダウンロードである WebDAV 7.0 で導入されました。
IIS 6.0 該当なし

Note

WebDAV 7.0 および WebDAV 7.5 モジュールは、IIS 7.0 とは別にリリースされ、次の URL からモジュールをダウンロードしてインストールする必要がありました。

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

Windows 7 および Windows Server 2008 R2 では、WebDAV 7.5 モジュールは IIS 7.5 の機能として付属しているため、WebDAV のダウンロードは必要なくなりました。

段取り

Web サーバーの WebDAV 発行をサポートするには、WebDAV モジュールをインストールする必要があります。 そのためには、次のステップに従います。

Windows Server 2012 または Windows Server 2012 R2

  1. タスク バーで [サーバー マネージャー]をクリックします。
  2. [サーバー マネージャー] で、[管理] メニューを選択し、[役割と機能の追加] を選択します。
  3. [役割と機能の追加] ウィザードで、[次へ] をクリックします。 インストールの種類を選択し、[次へ] をクリックします。 対象サーバーを選択し、[次へ] をクリックします。
  4. [サーバー ロール] ページで、[Web サーバー (IIS)][Web サーバー][HTTP 共通機能] の順に展開し、[WebDAV 発行] を選択します。 次へ をクリックします。
    Windows Server 2012 で選択された Web DAV 発行を示すスクリーンショット。
  5. [機能の選択] ページで、[次へ] をクリックします。
  6. [インストール オプションの確認] ページで、[インストール] をクリックします。
  7. [結果] ページで、 [閉じる]をクリックします。

Windows 8 または Windows 8.1

  1. [スタート] 画面で、ポインターを左下隅まで移動し、[スタート] ボタンを右クリックし、[コントロール パネル] をクリックします。
  2. [コントロール パネル][プログラムと機能] をクリックし、[Windows の機能の有効化または無効化] をクリックします。
  3. [インターネット インフォメーション サービス][World Wide Web サービス][HTTP 共通機能] を順に展開して、[WebDAV 発行] を選択します。
    Windows 8 で選択された Web DAV 発行を示すスクリーンショット。
  4. OK をクリックします。
  5. 閉じるをクリックします。

Windows Server 2008 R2

  1. タスク バーで [スタート] をクリックし、[管理ツール] をポイントして、[サーバー マネージャ] をクリックします。
  2. [サーバー マネージャ] 階層ウィンドウで [役割] を展開し、[Web サーバー (IIS)] をクリックします。
  3. [Web サーバー (IIS)] ウィンドウで、[役割サービス] セクションまでスクロールし、[役割サービスの追加] をクリックします。
  4. [役割サービスの追加] ウィザードの [役割サービスの選択] ページで、[HTTP 共通機能] を展開し、[WebDAV 発行] を選択して [次へ] をクリックします。
    Windows Server 2008 で選択された Web DAV 発行を示すスクリーンショット。
  5. [インストール オプションの確認] ページで、[インストール] をクリックします。
  6. [結果] ページで、 [閉じる]をクリックします。

Windows 7

  1. タスク バーで、[スタート][コントロール パネル] の順にクリックします。
  2. [コントロール パネル][プログラムと機能] をクリックし、[Windows の機能の有効化または無効化] をクリックします。
  3. [インターネット インフォメーション サービス][World Wide Web サービス][HTTP 共通機能] の順に展開します。
  4. [WebDAV 発行] を選択し、[OK] をクリックします。
    Windows 7 で [Web DAV Publishing]\(Web DAV 発行\) が選択されていることを示すスクリーンショット。

Windows Server 2008 または Windows Vista

操作方法

WebDAV オーサリング規則を追加する方法

  1. インターネット インフォメーション サービス (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) マネージャー] をダブルクリックします。
  2. [接続] ウィンドウで、サーバー名を展開してから、ディレクトリの参照を有効にするサイト、アプリケーション、またはディレクトリに移動します。

  3. [ホーム] ウィンドウで、[WebDAV オーサリング規則] をダブルクリックします。
    [既定の Web サイトホーム] ウィンドウを示すスクリーンショット。[Web DAV Authoring Rules]\(Web DAV 作成ルール\) が選択されています。

  4. [操作] ウィンドウで、[オーサリング規則の追加] をクリックします。
    [Web DAV Authoring Rules]\(Web DAV 作成ルール\) ペインを示すスクリーンショット。

  5. [オーサリング規則の追加] ダイアログで、次のオプションを指定します。

    • [以下へのアクセスを許可]: オーサリング規則をすべてのコンテンツ タイプに適用するか、許可する特定のコンテンツ タイプを指定するかを指定します。
    • [このコンテンツへのアクセスを許可する対象]: オーサリング規則をすべてのユーザー、特定のグループまたは役割、もしくは特定のユーザーのいずれに適用するかを指定します。
    • [アクセス許可]: オーサリング規則で、指定したコンテンツ タイプとユーザーに対して [読み取り][書き込み]、または [ソース] のどのアクセスを許可するかを指定します。
      [作成ロールの追加] ダイアログ ボックスを示すスクリーンショット。すべてのコンテンツが選択されています。
  6. OK をクリックします。

構成

<authoringRules> 要素は、ApplicationHost.config ファイル内の URI ごとに構成できます。 設定は、グローバル、サイト レベル、またはフォルダーごとに保存できます。 <authoringRules> 要素は委任できないため、Web.config ファイル内の <authoringRules> 要素はすべて無視されます。

属性

属性 説明
defaultAccess 省略可能なフラグ属性。

WebDAV オーサリングの既定のアクセス設定を指定します。 これらの値は論理 OR 操作と組み合わされているため、"None, Read" = "Read" です。

注: Source アクセスを使用すると、WebDAV クライアントは、ファイルの処理された出力ではなく、ASP.NET や PHP ファイルなどのスクリプト マップト ファイルの内容を要求できます。

既定値は None です。

Value 説明
None オーサリングは許可されません。

この数値は 0 です。
Read 読み取りアクセスが許可されています。

この数値は 1 です。
Write 書き込みアクセスが許可されます。

この数値は 2 です。
Source ソース コードへのアクセスが許可されます。

この数値は 16 です。
allowNonMimeMapFiles 省略可能で、 Boolean 型の属性。 MIME マップで定義されていないファイルに対して WebDAV 要求を許可する必要がある場合は true、それ以外の場合は false。 たとえば、スクリプト マップされているファイルは MIME マップで定義されていませんが、Web 作成者は、IIS 要求では既定では許可されていないこれらのファイルを編集する必要がある場合があります。 true に設定すると、WebDAV モジュールは、MIME マップに含まれていないファイルの要求を受け入れます。 false に設定すると、このモジュールは、すべてのファイルが MIME マップで見つかることを要求し、MIME リストに一致しない要求に対して、MIME マップ ポリシーがこの要求を禁止することを示す 404.3 エラーが返されます。 既定値は false です。
defaultMimeType 省略可能な文字列属性。

明示的な MIME の種類が定義されていないファイルの既定の MIME の種類を指定します。

既定値は application/octet-stream です。

子要素

要素 説明
add 省略可能な要素です。

オーサリング規則をオーサリング規則のコレクションに追加します。
clear 省略可能な要素です。

オーサリング規則のコレクションをクリアします。
remove 省略可能な要素です。

オーサリング規則のコレクションから、オーサリング規則を削除します。

構成サンプル

次の例では、既定の Web サイトのサンプル <webdav> 要素を表示します。 次の使用例は、既存のオーサリング規則をクリアし、管理者グループに対して 1 つの規則を追加し、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 クライアントが IIS MIME マップに表示されていないファイルを発行できるように WebDAV オーサリング規則を構成し、"管理者" グループへの読み取り、書き込み、ソース アクセスを許可する単一のオーサリング規則を追加します。

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

Note

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