GetAccessControl メソッド (String)
目次を折りたたむ
目次を展開する
この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

Directory.GetAccessControl メソッド (String)

 

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

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

public static DirectorySecurity GetAccessControl(
	string path
)

パラメーター

path

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

戻り値

Type: System.Security.AccessControl.DirectorySecurity

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

Exception Condition
ArgumentNullException

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

IOException

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

PlatformNotSupportedException

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

SystemException

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

UnauthorizedAccessException

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

または

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

または

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

使用して、GetAccessControlディレクトリのアクセス制御リスト (ACL) のエントリを取得するメソッド。

ACL には、個人やグループ、または権のない、特定のファイルまたはディレクトリの特定のアクションをについて説明します。詳細については、「ACL Technology Overview」および「方法 : アクセス制御リスト エントリを追加または削除する」を参照してください。

NTFS の環境でReadAttributesReadExtendedAttributes、ユーザーがいる場合に、ユーザーに与えられるListDirectory、親フォルダーの権限です。拒否するReadAttributesReadExtendedAttributes、拒否ListDirectory親のディレクトリにします。

次の例では、 GetAccessControlSetAccessControlを追加、アクセスするメソッドのリスト (ACL) のエントリを制御し、ディレクトリから ACL のエントリを削除し、します。この例を実行するには、有効なユーザーまたはグループ アカウントを指定する必要があります。

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

        }
    }
}

FileIOPermission

ディレクトリのアクセス制御リスト (ACL) を列挙する権限です。関連する列挙NoAccess、。View

セキュリティの操作: 要求します。

.NET Framework
2.0 から利用可能
トップに戻る
表示:
© 2016 Microsoft