Condividi tramite


FileSystemAuditRule Classe

Definizione

Rappresenta un'astrazione di una voce di controllo di accesso (ACE, Access Control Entry) che definisce una regola di controllo per un file o una directory. La classe non può essere ereditata.

public ref class FileSystemAuditRule sealed : System::Security::AccessControl::AuditRule
public sealed class FileSystemAuditRule : System.Security.AccessControl.AuditRule
[System.Security.SecurityCritical]
public sealed class FileSystemAuditRule : System.Security.AccessControl.AuditRule
type FileSystemAuditRule = class
    inherit AuditRule
[<System.Security.SecurityCritical>]
type FileSystemAuditRule = class
    inherit AuditRule
Public NotInheritable Class FileSystemAuditRule
Inherits AuditRule
Ereditarietà
FileSystemAuditRule
Attributi

Esempio

Nell'esempio di codice seguente viene usata la FileSystemAuditRule classe per aggiungere e quindi rimuovere una regola di controllo 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 = "test.xml";

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

                // Add the access control entry to the file.
                AddFileAuditRule(FileName, @"MYDOMAIN\MyAccount", FileSystemRights.ReadData, AuditFlags.Failure);

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

                // Remove the access control entry from the file.
                RemoveFileAuditRule(FileName, @"MYDOMAIN\MyAccount", FileSystemRights.ReadData, AuditFlags.Failure);

                Console.WriteLine("Done.");
            }
            catch (IOException e)
            {
                Console.WriteLine("Unable to open the file: " + e.Message);
            }
            catch (PrivilegeNotHeldException e)
            {
                Console.WriteLine("The current account does not have the correct privileges: " + e.Message);
            }

            Console.ReadLine();
        }

        // Adds an ACL entry on the specified file for the specified account.
        public static void AddFileAuditRule(string FileName, string Account, FileSystemRights Rights, AuditFlags AuditRule)
        {

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

            // Add the FileSystemAuditRule to the security settings.
            fSecurity.AddAuditRule(new FileSystemAuditRule(Account,
                                                            Rights,
                                                            AuditRule));

            // Set the new access settings.
            File.SetAccessControl(FileName, fSecurity);
        }

        // Removes an ACL entry on the specified file for the specified account.
        public static void RemoveFileAuditRule(string FileName, string Account, FileSystemRights Rights, AuditFlags AuditRule)
        {

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

            // Add the FileSystemAuditRule to the security settings.
            fSecurity.RemoveAuditRule(new FileSystemAuditRule(Account,
                                                            Rights,
                                                            AuditRule));

            // Set the new access settings.
            File.SetAccessControl(FileName, fSecurity);
        }
    }
}
Imports System.IO
Imports System.Security.AccessControl



Module FileExample

    Sub Main()
        Try
            Dim FileName As String = "test.xml"

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

            ' Add the access control entry to the file.
            AddFileAuditRule(FileName, "MYDOMAIN\MyAccount", FileSystemRights.ReadData, AuditFlags.Failure)

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

            ' Remove the access control entry from the file.
            RemoveFileAuditRule(FileName, "MYDOMAIN\MyAccount", FileSystemRights.ReadData, AuditFlags.Failure)

            Console.WriteLine("Done.")
        Catch e As IOException
            Console.WriteLine("Unable to open the file: " & e.Message)
        Catch e As PrivilegeNotHeldException
            Console.WriteLine("The current account does not have the correct privileges: " & e.Message)
        End Try

        Console.ReadLine()

    End Sub


    ' Adds an ACL entry on the specified file for the specified account.
    Sub AddFileAuditRule(ByVal FileName As String, ByVal Account As String, ByVal Rights As FileSystemRights, ByVal AuditRule As AuditFlags)


        ' Get a FileSecurity object that represents the 
        ' current security settings.
        Dim fSecurity As FileSecurity = File.GetAccessControl(FileName)

        ' Add the FileSystemAuditRule to the security settings. 
        fSecurity.AddAuditRule(New FileSystemAuditRule(Account, Rights, AuditRule))

        ' Set the new access settings.
        File.SetAccessControl(FileName, fSecurity)

    End Sub


    ' Removes an ACL entry on the specified file for the specified account.
    Sub RemoveFileAuditRule(ByVal FileName As String, ByVal Account As String, ByVal Rights As FileSystemRights, ByVal AuditRule As AuditFlags)

        ' Get a FileSecurity object that represents the 
        ' current security settings.
        Dim fSecurity As FileSecurity = File.GetAccessControl(FileName)

        ' Add the FileSystemAuditRule to the security settings. 
        fSecurity.RemoveAuditRule(New FileSystemAuditRule(Account, Rights, AuditRule))

        ' Set the new access settings.
        File.SetAccessControl(FileName, fSecurity)

    End Sub
End Module

Commenti

La FileSystemAuditRule classe rappresenta un'astrazione di una voce di controllo di accesso sottostante (ACE) che specifica un account utente, il tipo di accesso da fornire (lettura, scrittura e così via) e se eseguire il controllo. Questa classe può anche specificare il modo in cui le regole di controllo vengono ereditate da e propagate agli oggetti.

Per consentire il controllo dei file e della directory in Windows NT o versioni successive, è necessario abilitare i criteri audit access Security nel computer. Per impostazione predefinita, questo criterio è impostato su Nessun controllo.

Per abilitare i criteri Di sicurezza di accesso di controllo, seguire questa procedura:

  1. Aprire lo snap-in Microsoft Management Console (MMC) Impostazioni sicurezza locali , disponibile nella cartella Strumenti di amministrazione.

  2. Espandere la cartella Criteri locali e fare clic con il pulsante sinistro sulla cartella Criteri di controllo.

  3. Fare doppio clic sulla voce Controllo accesso all'oggetto nel riquadro destro dello snap-in MMC oppure fare clic con il pulsante destro del mouse e scegliere Proprietà per visualizzare la finestra di dialogo Proprietà di accesso agli oggetti di controllo .

  4. Selezionare le caselle di controllo Operazione riuscita o Errore per registrare errori o errori.

Si noti che una regola di controllo per un account utente richiede una regola di accesso corrispondente per lo stesso account utente.

Usare la FileSystemAuditRule classe per creare una nuova regola di controllo. È possibile rendere persistente questa regola usando la FileSecurity classe o DirectorySecurity .

Costruttori

FileSystemAuditRule(IdentityReference, FileSystemRights, AuditFlags)

Inizializza una nuova istanza della classe FileSystemAuditRule utilizzando un riferimento a un account utente, un valore che specifica il tipo di operazione associata alla regola di controllo e un valore che specifica quando eseguire il controllo.

FileSystemAuditRule(IdentityReference, FileSystemRights, InheritanceFlags, PropagationFlags, AuditFlags)

Inizializza una nuova istanza della classe FileSystemAuditRule utilizzando il nome di un riferimento a un account utente, un valore che specifica il tipo di operazione associata alla regola di controllo, un valore che determina come vengono ereditati i diritti, un valore che determina come vengono propagati i diritti e un valore che specifica quando eseguire il controllo.

FileSystemAuditRule(String, FileSystemRights, AuditFlags)

Inizializza una nuova istanza della classe FileSystemAuditRule utilizzando un nome di account utente, un valore che specifica il tipo di operazione associata alla regola di controllo e un valore che specifica quando eseguire il controllo.

FileSystemAuditRule(String, FileSystemRights, InheritanceFlags, PropagationFlags, AuditFlags)

Inizializza una nuova istanza della classe FileSystemAuditRule utilizzando il nome di un account utente, un valore che specifica il tipo di operazione associata alla regola di controllo, un valore che determina come vengono ereditati i diritti, un valore che determina come vengono propagati i diritti e un valore che specifica quando eseguire il controllo.

Proprietà

AccessMask

Ottiene la maschera di accesso per questa regola.

(Ereditato da AuthorizationRule)
AuditFlags

Ottiene i flag di controllo per la regola di controllo.

(Ereditato da AuditRule)
FileSystemRights

Ottiene i flag FileSystemRights associati all'oggetto FileSystemAuditRule corrente.

IdentityReference

Ottiene l'oggetto IdentityReference a cui si applica questa regola.

(Ereditato da AuthorizationRule)
InheritanceFlags

Ottiene il valore dei flag che determinano come questa regola viene ereditata dagli oggetti figlio.

(Ereditato da AuthorizationRule)
IsInherited

Ottiene un valore che indica se la regola viene impostata in modo esplicito oppure se è ereditata da un oggetto contenitore padre.

(Ereditato da AuthorizationRule)
PropagationFlags

Ottiene il valore dei flag di propagazione, che determinano come l'ereditarietà di questa regola viene propagata agli oggetti figlio. Questa proprietà è significativa solo quando il valore dell'enumerazione InheritanceFlags non è None.

(Ereditato da AuthorizationRule)

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a