FileSystemAuditRule Classe

Définition

Représente une abstraction d'une entrée de contrôle d'accès (ACE) qui définit une règle d'audit pour un fichier ou un répertoire. Cette classe ne peut pas être héritée.

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
Héritage
FileSystemAuditRule
Attributs

Exemples

L’exemple de code suivant utilise la FileSystemAuditRule classe pour ajouter, puis supprimer une règle d’audit d’un fichier. Vous devez entrer un compte d'utilisateur ou de groupe valide pour exécuter cet exemple.

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

Remarques

La FileSystemAuditRule classe représente une abstraction d’une entrée de contrôle d’accès sous-jacente (ACE) qui spécifie un compte d’utilisateur, le type d’accès à fournir (lecture, écriture, et ainsi de suite) et s’il faut effectuer l’audit. Cette classe peut également spécifier la façon dont les règles d’audit sont héritées et propagées aux objets.

Pour autoriser l’audit des fichiers et des répertoires sur Windows NT ou version ultérieure, vous devez activer la stratégie Audit Access Security sur votre ordinateur. Par défaut, cette stratégie est définie sur Aucun audit.

Pour activer la stratégie Audit Access Security, procédez comme suit :

  1. Ouvrez le composant logiciel enfichable MMC (Local Security Paramètres Microsoft Management Console), situé dans le dossier Outils d’administration.

  2. Développez le dossier Stratégies locales et cliquez avec le bouton gauche sur le dossier Stratégie d’audit.

  3. Double-cliquez sur l’entrée d’accès à l’objet Audit dans le volet droit du composant logiciel enfichable MMC, ou cliquez avec le bouton droit et choisissez Propriétés pour afficher la boîte de dialogue Propriétés d’accès aux objets d’audit .

  4. Activez les cases à cocher Réussite ou Échec pour enregistrer les réussites ou les échecs.

Notez qu’une règle d’audit pour un compte d’utilisateur nécessite une règle d’accès correspondante pour le même compte d’utilisateur.

Utilisez la FileSystemAuditRule classe pour créer une règle d’audit. Vous pouvez conserver cette règle à l’aide de la classe ou DirectorySecurity de la FileSecurity classe.

Constructeurs

FileSystemAuditRule(IdentityReference, FileSystemRights, AuditFlags)

Initialise une nouvelle instance de la classe FileSystemAuditRule à l'aide d'une référence à un compte d'utilisateur, d'une valeur qui spécifie le type d'opération associé à la règle d'audit et d'une valeur qui spécifie quand exécuter l'audit.

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

Initialise une nouvelle instance de la classe FileSystemAuditRule à l'aide du nom d'une référence à un compte d'utilisateur, d'une valeur qui spécifie le type d'opération associé à la règle d'audit, d'une valeur qui détermine comment les droits sont hérités, d'une valeur qui détermine comment les droits sont propagés et d'une valeur qui spécifie quand exécuter l'audit.

FileSystemAuditRule(String, FileSystemRights, AuditFlags)

Initialise une nouvelle instance de la classe FileSystemAuditRule à l'aide d'un nom de compte d'utilisateur, d'une valeur qui spécifie le type d'opération associé à la règle d'audit et d'une valeur qui spécifie quand exécuter l'audit.

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

Initialise une nouvelle instance de la classe FileSystemAuditRule à l'aide du nom d'un compte d'utilisateur, d'une valeur qui spécifie le type d'opération associé à la règle d'audit, d'une valeur qui détermine comment les droits sont hérités, d'une valeur qui détermine comment les droits sont propagés et d'une valeur qui spécifie quand exécuter l'audit.

Propriétés

AccessMask

Obtient le masque d’accès de cette règle.

(Hérité de AuthorizationRule)
AuditFlags

Obtient les indicateurs d'audit de cette règle d'audit.

(Hérité de AuditRule)
FileSystemRights

Obtient les indicateurs FileSystemRights associés à l'objet FileSystemAuditRule en cours.

IdentityReference

Obtient l’objet IdentityReference auquel cette règle s’applique.

(Hérité de AuthorizationRule)
InheritanceFlags

Obtient la valeur des indicateurs qui déterminent comment cette règle est héritée par les objets enfants.

(Hérité de AuthorizationRule)
IsInherited

Obtient une valeur qui indique si cette règle est explicitement définie ou héritée d’un objet de conteneur parent.

(Hérité de AuthorizationRule)
PropagationFlags

Obtient la valeur des indicateurs de propagation, qui déterminent la façon dont l’héritage de cette règle est propagée aux objets enfants. Cette propriété est significative uniquement lorsque la valeur de l’énumération InheritanceFlags n’est pas None.

(Hérité de AuthorizationRule)

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à