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 FileInfo.GetAccessControl ()

 

Data di pubblicazione: ottobre 2016

Ottiene un oggetto FileSecurity che incapsula le voci dell'elenco di controllo di accesso (ACL) per il file descritto dall'oggetto FileInfo corrente.

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

public FileSecurity GetAccessControl()

Valore restituito

Type: System.Security.AccessControl.FileSecurity

Oggetto FileSecurity che incapsula le regole di controllo di accesso per il file corrente.

Exception Condition
IOException

Si è verificato un errore di I/O durante l'apertura del file.

PlatformNotSupportedException

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

PrivilegeNotHeldException

L'account di sistema corrente non ha privilegi amministrativi.

SystemException

Il file non è stato trovato.

UnauthorizedAccessException

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 il file corrente.

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

Nell'esempio di codice viene illustrato come utilizzare il GetAccessControl (metodo) e SetAccessControl per aggiungere e rimuovere una voce di elenco (ACL) di controllo di accesso da un file. È 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 FileExample
    {
        public static void Main()
        {
            try
            {
                string FileName = "c:/test.xml";

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

                // Add the access control entry to the file.
                // Before compiling this snippet, change MyDomain to your 
                // domain name and MyAccessAccount to the name 
                // you use to access your domain.
                AddFileSecurity(FileName, @"MyDomain\MyAccessAccount", FileSystemRights.ReadData, AccessControlType.Allow);

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

                // Remove the access control entry from the file.
                // Before compiling this snippet, change MyDomain to your 
                // domain name and MyAccessAccount to the name 
                // you use to access your domain.
                RemoveFileSecurity(FileName, @"MyDomain\MyAccessAccount", FileSystemRights.ReadData, AccessControlType.Allow);

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

        }

        // Adds an ACL entry on the specified file for the specified account.
        public static void AddFileSecurity(string FileName, string Account, FileSystemRights Rights, AccessControlType ControlType)
        {
            // Create a new FileInfo object.
            FileInfo fInfo = new FileInfo(FileName);

            // Get a FileSecurity object that represents the 
            // current security settings.
            FileSecurity fSecurity = fInfo.GetAccessControl();

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

            // Set the new access settings.
            fInfo.SetAccessControl(fSecurity);

        }

        // Removes an ACL entry on the specified file for the specified account.
        public static void RemoveFileSecurity(string FileName, string Account, FileSystemRights Rights, AccessControlType ControlType)
        {
            // Create a new FileInfo object.
            FileInfo fInfo = new FileInfo(FileName);

            // Get a FileSecurity object that represents the 
            // current security settings.
            FileSecurity fSecurity = fInfo.GetAccessControl();

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

            // Set the new access settings.
            fInfo.SetAccessControl(fSecurity);

        }
    }
}
//This code produces output similar to the following; 
//results may vary based on the computer/file structure/etc.:
//
//Adding access control entry for c:\test.xml
//Removing access control entry from c:\test.xml
//Done.
//

FileIOPermission

Associated enumerations: F:System.Security.Permissions.FileIOPermissionAccess.NoAccess, F:System.Security.AccessControl.AccessControlActions.View

Security action: Demand.

For permission to read the access control list.

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