DirectoryInfo.GetAccessControl, méthode ()

Remarque : cette méthode est nouvelle dans le .NET Framework version 2.0.

Obtient un objet DirectorySecurity qui encapsule les entrées ACL pour le répertoire décrit par l'objet DirectoryInfo en cours.

Espace de noms : System.IO
Assembly : mscorlib (dans mscorlib.dll)

public DirectorySecurity GetAccessControl ()
public DirectorySecurity GetAccessControl ()
public function GetAccessControl () : DirectorySecurity

Valeur de retour

Objet DirectorySecurity qui encapsule les règles de contrôle d'accès pour le répertoire.

Type d'exceptionCondition

SystemException

Le répertoire est introuvable ou n'a pas pu être modifié.

UnauthorizedAccessException

Le processus en cours n'a pas l'autorisation requise pour ouvrir ce répertoire.

IOException

Une erreur d'E/S s'est produite lors de l'ouverture du répertoire.

PlatformNotSupportedException

Le système d'exploitation actuel n'est pas Microsoft Windows 2000 ou version ultérieure.

UnauthorizedAccessException

Le répertoire est en lecture seule.

- ou -

Cette opération n'est pas prise en charge sur la plate-forme actuelle.

- ou -

L'appelant n'a pas l'autorisation requise.

L'appel de cette surcharge de méthode est équivalent à l'appel de la surcharge de méthode GetAccessControl et à la spécification des sections de contrôle d'accès AccessControlSections.Access | AccessControlSections.Owner | AccessControlSections.Group (AccessControlSections.AccessOrAccessControlSections.OwnerOrAccessControlSections.Group en Visual Basic).

Utilisez la méthode GetAccessControl pour récupérer les entrées ACL pour le fichier en cours.

Une liste de contrôle d'accès (ACL) décrit les individus et/ou les groupes qui disposent, ou non, de droits pour l'exécution d'actions spécifiques sur le fichier ou le répertoire donné. Pour plus d'informations, consultez Vue d'ensemble de la technologie ACL et Comment : ajouter ou supprimer des entrées dans la liste de contrôle d'accès.

L'exemple de code suivant utilise les méthodes GetAccessControl et SetAccessControl pour ajouter puis supprimer une entrée ACL dans un répertoire.

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  pour obtenir l'autorisation d'énumérer la liste de contrôle d'accès (ACL) d'un répertoire. Énumérations associées : NoAccess, View Action de sécurité : Demand.

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

.NET Framework

Prise en charge dans : 2.0

Ajouts de la communauté

AJOUTER
Afficher: