エクスポート (0) 印刷
すべて展開
この記事は機械翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。 詳細情報
訳文
原文

Directory.GetAccessControl メソッド (String)

指定したディレクトリのアクセス制御リスト (ACL) エントリをカプセル化する DirectorySecurity オブジェクトを取得します。

名前空間:  System.IO
アセンブリ:  mscorlib (mscorlib.dll 内)

public static DirectorySecurity GetAccessControl(
	string path
)

パラメーター

path
型 : System.String
ファイルのアクセス制御リスト (ACL) 情報を示す DirectorySecurity オブジェクトを格納しているディレクトリへのパス。

戻り値

型 : System.Security.AccessControl.DirectorySecurity
path パラメーターによって示されたファイルのアクセス制御規則をカプセル化するオブジェクト。

例外条件
ArgumentNullException

path パラメーターが null です。

IOException

ディレクトリを開くときに、I/O エラーが発生しました。

PlatformNotSupportedException

現在のオペレーティング システムは Windows 2000 以降ではありません。

SystemException

ディレクトリが見つからないなど、システム レベルのエラーが発生しました。 特定の例外は SystemException のサブクラスである場合があります。

UnauthorizedAccessException

path パラメーターによって、読み取り専用のディレクトリが指定されました。

または

この操作は、現在のプラットフォームではサポートされていません。

または

呼び出し元に、必要なアクセス許可がありません。

Use the GetAccessControl method to retrieve the access control list (ACL) entries for a directory.

An ACL describes individuals and/or groups who have, or do not have, rights to specific actions on the given file or directory. For more information, see アクセス制御リスト (ACL: Access Control List) 技術の概要 and 方法 : アクセス制御リスト エントリを追加または削除する.

In NTFS environments, ReadAttributes and ReadExtendedAttributes are granted to the user if the user has ListDirectory rights on the parent folder. To deny ReadAttributes and ReadExtendedAttributes, deny ListDirectory on the parent directory.

The following example uses the GetAccessControl and the SetAccessControl methods to add an access control list (ACL) entry and then remove an ACL entry from a directory.You must supply a valid user or group account to run this example.


using System;
using System.IO;
using System.Security.AccessControl;

namespace FileSystemExample
{
    class DirectoryExample
    {
        public static void Main()
        {
            try
            {
                string DirectoryName = "TestDirectory";

                Console.WriteLine("Adding access control entry for " + DirectoryName);

                // Add the access control entry to the directory.
                AddDirectorySecurity(DirectoryName, @"MYDOMAIN\MyAccount", FileSystemRights.ReadData, AccessControlType.Allow);

                Console.WriteLine("Removing access control entry from " + DirectoryName);

                // Remove the access control entry from the directory.
                RemoveDirectorySecurity(DirectoryName, @"MYDOMAIN\MyAccount", FileSystemRights.ReadData, AccessControlType.Allow);

                Console.WriteLine("Done.");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            Console.ReadLine();
        }

        // Adds an ACL entry on the specified directory for the specified account.
        public static void AddDirectorySecurity(string FileName, string Account, FileSystemRights Rights, AccessControlType ControlType)
        {
            // Create a new DirectoryInfo object.
            DirectoryInfo dInfo = new DirectoryInfo(FileName);

            // Get a DirectorySecurity object that represents the 
            // current security settings.
            DirectorySecurity dSecurity = dInfo.GetAccessControl();

            // Add the FileSystemAccessRule to the security settings. 
            dSecurity.AddAccessRule(new FileSystemAccessRule(Account,
                                                            Rights,
                                                            ControlType));

            // Set the new access settings.
            dInfo.SetAccessControl(dSecurity);

        }

        // Removes an ACL entry on the specified directory for the specified account.
        public static void RemoveDirectorySecurity(string FileName, string Account, FileSystemRights Rights, AccessControlType ControlType)
        {
            // Create a new DirectoryInfo object.
            DirectoryInfo dInfo = new DirectoryInfo(FileName);

            // Get a DirectorySecurity object that represents the 
            // current security settings.
            DirectorySecurity dSecurity = dInfo.GetAccessControl();

            // Add the FileSystemAccessRule to the security settings. 
            dSecurity.RemoveAccessRule(new FileSystemAccessRule(Account,
                                                            Rights,
                                                            ControlType));

            // Set the new access settings.
            dInfo.SetAccessControl(dSecurity);

        }
    }
}



.NET Framework

サポート対象 : 4.5、4、3.5、3.0、2.0

.NET Framework Client Profile

サポート対象 : 4、3.5 SP1

  • FileIOPermission 

    for permission to enumerate access control list (ACL) for a directory. Associated enumerations: NoAccess , View

    Security action: Demand.

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (サーバー コア ロールはサポート対象外), Windows Server 2008 R2 (SP1 以降でサーバー コア ロールをサポート。Itanium はサポート対象外)

この .NET Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、次を参照してください。.NET Framework システム要件.

コミュニティの追加

追加
表示:
© 2015 Microsoft