Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

DirectoryInfo.GetAccessControl-Methode: ()

 

Veröffentlicht: Oktober 2016

Ruft ein DirectorySecurity-Objekt ab, das die Einträge in der Zugriffssteuerungsliste für das Verzeichnis kapselt, das vom aktuellen DirectoryInfo-Objekt beschrieben wird.

Namespace:   System.IO
Assembly:  mscorlib (in mscorlib.dll)

public DirectorySecurity GetAccessControl()

Rückgabewert

Type: System.Security.AccessControl.DirectorySecurity

Ein DirectorySecurity-Objekt, das die Zugriffssteuerungsregeln für das Verzeichnis kapselt.

Exception Condition
SystemException

Das Verzeichnis wurde nicht gefunden und konnte nicht geändert werden.

UnauthorizedAccessException

Der aktuelle Prozess hat keinen Zugriff zum Öffnen des Verzeichnisses.

IOException

E/A-Fehler beim Öffnen des Verzeichnisses.

PlatformNotSupportedException

Das aktuelle Betriebssystem ist nicht Microsoft Windows 2000 oder höher.

UnauthorizedAccessException

Das Verzeichnis ist schreibgeschützt.

- oder -

Dieser Vorgang wird von der aktuellen Plattform nicht unterstützt.

- oder -

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

Aufrufen der Überladung dieser Methode entspricht dem Aufrufen der GetAccessControl Überladung und Angeben des Zugriffs steuern Abschnitte AccessControlSections.Access | AccessControlSections.Owner | AccessControlSections.Group (AccessControlSections.AccessOrAccessControlSections.OwnerOrAccessControlSections.Group in Visual Basic).

Verwenden der GetAccessControl Methode, um Einträge in der Zugriffssteuerungsliste (ACL) für die aktuelle Datei abzurufen.

Eine ACL beschreibt einzelne Benutzer und/oder Gruppen haben, oder, die Rechte für bestimmte Aktionen für die angegebene Datei oder das Verzeichnis verfügen. Weitere Informationen finden Sie unter Gewusst wie: Hinzufügen oder Entfernen von Zugriffssteuerungslisten-Einträgen.

Im folgenden Beispiel wird die GetAccessControl und SetAccessControl Methoden zum Hinzufügen und entfernen Sie dann ein Eintrag der Zugriffssteuerungsliste (ACL) aus einem Verzeichnis steuern.

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

for permission to enumerate an access control list (ACL) for a directory. Security action: F:System.Security.Permissions.SecurityAction.Demand. Associated enumerations: F:System.Security.Permissions.FileIOPermissionAccess.NoAccess, F:System.Security.AccessControl.AccessControlActions.View

.NET Framework
Verfügbar seit 2.0
Zurück zum Anfang
Anzeigen: