Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Directory.GetAccessControl (String)

 

Data di pubblicazione: ottobre 2016

Ottiene un oggetto DirectorySecurity che incapsula le voci dell'elenco di controllo di accesso (ACL) di una directory specificata.

Spazio dei nomi:   System.IO
Assembly:  mscorlib (in mscorlib.dll)

public static DirectorySecurity GetAccessControl(
	string path
)

Parametri

path
Type: System.String

Percorso alla directory contenente un oggetto DirectorySecurity che descrive le informazioni relative all'elenco di controllo di accesso (ACL) del file.

Valore restituito

Type: System.Security.AccessControl.DirectorySecurity

Oggetto che incapsula le regole di controllo di accesso per il file descritto dal parametro path.

Exception Condition
ArgumentNullException

Il valore del parametro path è null.

IOException

Si è verificato un errore di I/O durante l'apertura della directory.

PlatformNotSupportedException

Il sistema operativo corrente non è Windows 2000 o versioni successive.

SystemException

Si è verificato un errore a livello di sistema, ad esempio la directory non è stata trovata. L'eccezione specifica può essere una sottoclasse di SystemException.

UnauthorizedAccessException

Il parametro path specifica una directory di sola lettura.

-oppure-

L'operazione non è supportata sulla piattaforma corrente.

-oppure-

Il chiamante non dispone dell'autorizzazione richiesta.

Utilizzare il GetAccessControl per recuperare le voci di elenco (ACL) di controllo di accesso per una directory.

Un ACL descrive singoli utenti o gruppi che hanno o non dispone dei diritti per azioni specifiche su un determinato file o directory. Per altre informazioni, vedere Procedura: aggiungere o rimuovere voci dell'elenco di controllo di accesso (ACL).

In ambienti NTFS, ReadAttributes e ReadExtendedAttributes vengono concesse all'utente se l'utente ha ListDirectory diritti sulla cartella padre. Per negare ReadAttributes e ReadExtendedAttributes, negare ListDirectory sulla directory padre.

Nell'esempio seguente viene utilizzata la GetAccessControl e SetAccessControl metodi per aggiungere un accesso alla voce di elenco (ACL) di controllo e quindi rimuovere una voce ACL da una directory. È necessario specificare un utente valido o un account di gruppo per eseguire questo esempio.

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 access control list (ACL) for a directory. Associated enumerations: F:System.Security.Permissions.FileIOPermissionAccess.NoAccess , F:System.Security.AccessControl.AccessControlActions.View

Security action: Demand.

.NET Framework
Disponibile da 2.0
Torna all'inizio
Mostra: