Comparteix a través de


FileSystemSecurity Clase

Definición

Representa el control de acceso y la seguridad de auditoría de un archivo o directorio.

public ref class FileSystemSecurity abstract : System::Security::AccessControl::NativeObjectSecurity
public abstract class FileSystemSecurity : System.Security.AccessControl.NativeObjectSecurity
[System.Security.SecurityCritical]
public abstract class FileSystemSecurity : System.Security.AccessControl.NativeObjectSecurity
type FileSystemSecurity = class
    inherit NativeObjectSecurity
[<System.Security.SecurityCritical>]
type FileSystemSecurity = class
    inherit NativeObjectSecurity
Public MustInherit Class FileSystemSecurity
Inherits NativeObjectSecurity
Herencia
Derivado
Atributos

Ejemplos

En el ejemplo de código siguiente se usa la clase FileSecurity para agregar y, a continuación, quitar una entrada de lista de control de acceso (ACL) de un archivo. Debe proporcionar una cuenta de usuario o grupo válida para ejecutar este ejemplo.

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.
                AddFileSecurity(fileName, @"DomainName\AccountName",
                    FileSystemRights.ReadData, AccessControlType.Allow);

                Console.WriteLine($"Removing access control entry from {fileName}");

                // Remove the access control entry from the file.
                RemoveFileSecurity(fileName, @"DomainName\AccountName",
                    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)
        {
            FileInfo fileInfo = new(fileName);
            FileSecurity fSecurity = fileInfo.GetAccessControl();

            // Add the FileSystemAccessRule to the security settings.
            fSecurity.AddAccessRule(new FileSystemAccessRule(account,
                rights, controlType));

            // Set the new access settings.
            fileInfo.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)
        {
            FileInfo fileInfo = new(fileName);
            FileSecurity fSecurity = fileInfo.GetAccessControl();

            // Remove the FileSystemAccessRule from the security settings.
            fSecurity.RemoveAccessRule(new FileSystemAccessRule(account,
                rights, controlType));

            // Set the new access settings.
            fileInfo.SetAccessControl(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.
            AddFileSecurity(fileName, "DomainName\AccountName",
                FileSystemRights.ReadData, AccessControlType.Allow)

            Console.WriteLine("Removing access control entry from " & fileName)

            ' Remove the access control entry from the file.
            RemoveFileSecurity(fileName, "DomainName\AccountName",
                FileSystemRights.ReadData, AccessControlType.Allow)

            Console.WriteLine("Done.")
        Catch e As Exception
            Console.WriteLine(e)
        End Try

    End Sub

    ' Adds an ACL entry on the specified file for the specified account.
    Sub AddFileSecurity(ByVal fileName As String, ByVal account As String,
        ByVal rights As FileSystemRights, ByVal controlType As AccessControlType)

        Dim fileInfo As New FileInfo(fileName)
        Dim fSecurity As FileSecurity = fileInfo.GetAccessControl()

        ' Add the FileSystemAccessRule to the security settings. 
        Dim accessRule As New FileSystemAccessRule(account, rights, controlType)

        fSecurity.AddAccessRule(accessRule)

        ' Set the new access settings.
        fileInfo.SetAccessControl(fSecurity)

    End Sub

    ' Removes an ACL entry on the specified file for the specified account.
    Sub RemoveFileSecurity(ByVal fileName As String, ByVal account As String,
        ByVal rights As FileSystemRights, ByVal controlType As AccessControlType)

        Dim fileInfo As New FileInfo(fileName)
        Dim fSecurity As FileSecurity = fileInfo.GetAccessControl()

        ' Remove the FileSystemAccessRule from the security settings. 
        fSecurity.RemoveAccessRule(New FileSystemAccessRule(account,
            rights, controlType))

        ' Set the new access settings.
        fileInfo.SetAccessControl(fSecurity)

    End Sub
End Module

Comentarios

La clase FileSystemSecurity es la clase base para las clases FileSecurity y DirectorySecurity. Estas clases representan todos los derechos de acceso de un archivo o directorio del sistema y definen cómo se auditan los intentos de acceso.

La clase FileSystemSecurity representa los derechos de acceso y auditoría como un conjunto de reglas. Cada regla de acceso se representa mediante un objeto FileSystemAccessRule, mientras que cada regla de auditoría se representa mediante un objeto FileSystemAuditRule.

La clase FileSystemSecurity es una abstracción del sistema de seguridad de archivos subyacente de Microsoft Windows. En este sistema, cada archivo o directorio tiene una lista de control de acceso discrecional (DACL), que controla el acceso al archivo o directorio, y una lista de control de acceso del sistema (SACL), que especifica los intentos de control de acceso que se auditan. Las clases FileSystemAccessRule y FileSystemAuditRule son abstracciones de entradas de control de acceso (ACA) que componen DACLs y SACL.

La clase FileSystemSecurity oculta muchos detalles de DACL y SACL; no tiene que preocuparse por la ordenación ace o daCLS null.

Use los siguientes métodos dependientes de implementación de .NET para agregar o recuperar información de ACL de un archivo:

Implementación de .NET Agregar reglas Recuperación de reglas
.RED FileSystemAclExtensions.SetAccessControl(FileInfo, FileSecurity) FileSystemAclExtensions.GetAccessControl(FileInfo)
.NET Framework FileInfo.SetAccessControl(FileSecurity) FileInfo.GetAccessControl()

Propiedades

AccessRightType

Obtiene la enumeración que usa la clase FileSystemSecurity para representar los derechos de acceso.

AccessRulesModified

Obtiene o establece un valor booleano que especifica si se han modificado las reglas de acceso asociadas a este objeto ObjectSecurity.

(Heredado de ObjectSecurity)
AccessRuleType

Obtiene la enumeración que usa la clase FileSystemSecurity para representar las reglas de acceso.

AreAccessRulesCanonical

Obtiene un valor booleano que especifica si las reglas de acceso asociadas a este objeto ObjectSecurity están en orden canónico.

(Heredado de ObjectSecurity)
AreAccessRulesProtected

Obtiene un valor booleano que especifica si la lista de control de acceso discrecional (DACL) asociada a este objeto ObjectSecurity está protegida.

(Heredado de ObjectSecurity)
AreAuditRulesCanonical

Obtiene un valor booleano que especifica si las reglas de auditoría asociadas a este objeto ObjectSecurity están en orden canónico.

(Heredado de ObjectSecurity)
AreAuditRulesProtected

Obtiene un valor booleano que especifica si la lista de control de acceso del sistema (SACL) asociada a este objeto ObjectSecurity está protegida.

(Heredado de ObjectSecurity)
AuditRulesModified

Obtiene o establece un valor booleano que especifica si se han modificado las reglas de auditoría asociadas a este objeto ObjectSecurity.

(Heredado de ObjectSecurity)
AuditRuleType

Obtiene el tipo que usa la clase FileSystemSecurity para representar reglas de auditoría.

GroupModified

Obtiene o establece un valor booleano que especifica si se ha modificado el grupo asociado al objeto protegible.

(Heredado de ObjectSecurity)
IsContainer

Obtiene un valor booleano que especifica si este objeto ObjectSecurity es un objeto contenedor.

(Heredado de ObjectSecurity)
IsDS

Obtiene un valor booleano que especifica si este objeto ObjectSecurity es un objeto de directorio.

(Heredado de ObjectSecurity)
OwnerModified

Obtiene o establece un valor booleano que especifica si se ha modificado el propietario del objeto protegible.

(Heredado de ObjectSecurity)
SecurityDescriptor

Obtiene el descriptor de seguridad de esta instancia.

(Heredado de ObjectSecurity)

Métodos

AccessRuleFactory(IdentityReference, Int32, Boolean, InheritanceFlags, PropagationFlags, AccessControlType)

Inicializa una nueva instancia de la clase FileSystemAccessRule que representa una nueva regla de control de acceso para el usuario especificado, con los derechos de acceso, el control de acceso y las marcas especificados.

AddAccessRule(AccessRule)

Agrega la regla de acceso especificada a la lista de control de acceso discrecional (DACL) asociada a este objeto CommonObjectSecurity.

(Heredado de CommonObjectSecurity)
AddAccessRule(FileSystemAccessRule)

Agrega el permiso de lista de control de acceso (ACL) especificado al archivo o directorio actual.

AddAuditRule(AuditRule)

Agrega la regla de auditoría especificada a la lista de control de acceso del sistema (SACL) asociada a este objeto CommonObjectSecurity.

(Heredado de CommonObjectSecurity)
AddAuditRule(FileSystemAuditRule)

Agrega la regla de auditoría especificada al archivo o directorio actual.

AuditRuleFactory(IdentityReference, Int32, Boolean, InheritanceFlags, PropagationFlags, AuditFlags)

Inicializa una nueva instancia de la clase FileSystemAuditRule que representa la regla de auditoría especificada para el usuario especificado.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
GetAccessRules(Boolean, Boolean, Type)

Obtiene una colección de las reglas de acceso asociadas al identificador de seguridad especificado.

(Heredado de CommonObjectSecurity)
GetAuditRules(Boolean, Boolean, Type)

Obtiene una colección de las reglas de auditoría asociadas al identificador de seguridad especificado.

(Heredado de CommonObjectSecurity)
GetGroup(Type)

Obtiene el grupo principal asociado al propietario especificado.

(Heredado de ObjectSecurity)
GetHashCode()

Actúa como función hash predeterminada.

(Heredado de Object)
GetOwner(Type)

Obtiene el propietario asociado al grupo principal especificado.

(Heredado de ObjectSecurity)
GetSecurityDescriptorBinaryForm()

Devuelve una matriz de valores de bytes que representa la información del descriptor de seguridad de este objeto ObjectSecurity.

(Heredado de ObjectSecurity)
GetSecurityDescriptorSddlForm(AccessControlSections)

Devuelve la representación del lenguaje de definición de descriptores de seguridad (SDDL) de las secciones especificadas del descriptor de seguridad asociado a este objeto ObjectSecurity.

(Heredado de ObjectSecurity)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
ModifyAccess(AccessControlModification, AccessRule, Boolean)

Aplica la modificación especificada a la lista de control de acceso discrecional (DACL) asociada a este objeto CommonObjectSecurity.

(Heredado de CommonObjectSecurity)
ModifyAccessRule(AccessControlModification, AccessRule, Boolean)

Aplica la modificación especificada a la lista de control de acceso discrecional (DACL) asociada a este objeto ObjectSecurity.

(Heredado de ObjectSecurity)
ModifyAudit(AccessControlModification, AuditRule, Boolean)

Aplica la modificación especificada a la lista de control de acceso del sistema (SACL) asociada a este objeto CommonObjectSecurity.

(Heredado de CommonObjectSecurity)
ModifyAuditRule(AccessControlModification, AuditRule, Boolean)

Aplica la modificación especificada a la lista de control de acceso del sistema (SACL) asociada a este objeto ObjectSecurity.

(Heredado de ObjectSecurity)
Persist(Boolean, String, AccessControlSections)

Guarda las secciones especificadas del descriptor de seguridad asociado a este objeto ObjectSecurity en almacenamiento permanente. Se recomienda que los valores de los parámetros de includeSections pasados al constructor y conservar métodos sean idénticos.

(Heredado de ObjectSecurity)
Persist(SafeHandle, AccessControlSections)

Guarda las secciones especificadas del descriptor de seguridad asociado a este objeto NativeObjectSecurity en almacenamiento permanente. Se recomienda conservar que los valores de los parámetros de includeSections pasados al constructor y conservar métodos sean idénticos.

(Heredado de NativeObjectSecurity)
Persist(SafeHandle, AccessControlSections, Object)

Guarda las secciones especificadas del descriptor de seguridad asociado a este objeto NativeObjectSecurity en almacenamiento permanente. Se recomienda que los valores de los parámetros de includeSections pasados al constructor y conservar métodos sean idénticos.

(Heredado de NativeObjectSecurity)
Persist(String, AccessControlSections)

Guarda las secciones especificadas del descriptor de seguridad asociado a este objeto NativeObjectSecurity en almacenamiento permanente. Se recomienda que los valores de los parámetros de includeSections pasados al constructor y conservar métodos sean idénticos.

(Heredado de NativeObjectSecurity)
Persist(String, AccessControlSections, Object)

Guarda las secciones especificadas del descriptor de seguridad asociado a este objeto NativeObjectSecurity en almacenamiento permanente. Se recomienda que los valores de los parámetros de includeSections pasados al constructor y conservar métodos sean idénticos.

(Heredado de NativeObjectSecurity)
PurgeAccessRules(IdentityReference)

Quita todas las reglas de acceso asociadas al IdentityReferenceespecificado.

(Heredado de ObjectSecurity)
PurgeAuditRules(IdentityReference)

Quita todas las reglas de auditoría asociadas al IdentityReferenceespecificado.

(Heredado de ObjectSecurity)
ReadLock()

Bloquea este objeto ObjectSecurity para el acceso de lectura.

(Heredado de ObjectSecurity)
ReadUnlock()

Desbloquea este objeto ObjectSecurity para el acceso de lectura.

(Heredado de ObjectSecurity)
RemoveAccessRule(AccessRule)

Quita las reglas de acceso que contienen el mismo identificador de seguridad y máscara de acceso que la regla de acceso especificada de la lista de control de acceso discrecional (DACL) asociada a este objeto CommonObjectSecurity.

(Heredado de CommonObjectSecurity)
RemoveAccessRule(FileSystemAccessRule)

Quita todos los permisos de lista de control de acceso (ACL) permitidos o denegados coincidentes del archivo o directorio actual.

RemoveAccessRuleAll(AccessRule)

Quita todas las reglas de acceso que tienen el mismo identificador de seguridad que la regla de acceso especificada de la lista de control de acceso discrecional (DACL) asociada a este objeto CommonObjectSecurity.

(Heredado de CommonObjectSecurity)
RemoveAccessRuleAll(FileSystemAccessRule)

Quita todos los permisos de lista de control de acceso (ACL) para el usuario especificado del archivo o directorio actual.

RemoveAccessRuleSpecific(AccessRule)

Quita todas las reglas de acceso que coinciden exactamente con la regla de acceso especificada de la lista de control de acceso discrecional (DACL) asociada a este objeto CommonObjectSecurity.

(Heredado de CommonObjectSecurity)
RemoveAccessRuleSpecific(FileSystemAccessRule)

Quita un solo permiso de permiso o denegación de lista de control de acceso (ACL) coincidente del archivo o directorio actual.

RemoveAuditRule(AuditRule)

Quita las reglas de auditoría que contienen el mismo identificador de seguridad y máscara de acceso que la regla de auditoría especificada de la lista de control de acceso del sistema (SACL) asociada a este objeto CommonObjectSecurity.

(Heredado de CommonObjectSecurity)
RemoveAuditRule(FileSystemAuditRule)

Quita todas las reglas de auditoría de permitir o denegar coincidencias del archivo o directorio actual.

RemoveAuditRuleAll(AuditRule)

Quita todas las reglas de auditoría que tienen el mismo identificador de seguridad que la regla de auditoría especificada de la lista de control de acceso del sistema (SACL) asociada a este objeto CommonObjectSecurity.

(Heredado de CommonObjectSecurity)
RemoveAuditRuleAll(FileSystemAuditRule)

Quita todas las reglas de auditoría del usuario especificado del archivo o directorio actual.

RemoveAuditRuleSpecific(AuditRule)

Quita todas las reglas de auditoría que coinciden exactamente con la regla de auditoría especificada de la lista de control de acceso del sistema (SACL) asociada a este objeto CommonObjectSecurity.

(Heredado de CommonObjectSecurity)
RemoveAuditRuleSpecific(FileSystemAuditRule)

Quita una sola regla de auditoría de permitido o denegación de coincidencia del archivo o directorio actual.

ResetAccessRule(AccessRule)

Quita todas las reglas de acceso de la lista de control de acceso discrecional (DACL) asociada a este objeto CommonObjectSecurity y, a continuación, agrega la regla de acceso especificada.

(Heredado de CommonObjectSecurity)
ResetAccessRule(FileSystemAccessRule)

Agrega el permiso de lista de control de acceso (ACL) especificado al archivo o directorio actual y quita todos los permisos de ACL coincidentes.

SetAccessRule(AccessRule)

Quita todas las reglas de acceso que contienen el mismo identificador de seguridad y calificador que la regla de acceso especificada en la lista de control de acceso discrecional (DACL) asociada a este objeto CommonObjectSecurity y, a continuación, agrega la regla de acceso especificada.

(Heredado de CommonObjectSecurity)
SetAccessRule(FileSystemAccessRule)

Establece el permiso de lista de control de acceso (ACL) especificado para el archivo o directorio actual.

SetAccessRuleProtection(Boolean, Boolean)

Establece o quita la protección de las reglas de acceso asociadas a este objeto ObjectSecurity. Los objetos primarios no pueden modificar las reglas de acceso protegidas a través de la herencia.

(Heredado de ObjectSecurity)
SetAuditRule(AuditRule)

Quita todas las reglas de auditoría que contienen el mismo identificador de seguridad y calificador que la regla de auditoría especificada en la lista de control de acceso del sistema (SACL) asociada a este objeto CommonObjectSecurity y, a continuación, agrega la regla de auditoría especificada.

(Heredado de CommonObjectSecurity)
SetAuditRule(FileSystemAuditRule)

Establece la regla de auditoría especificada para el archivo o directorio actual.

SetAuditRuleProtection(Boolean, Boolean)

Establece o quita la protección de las reglas de auditoría asociadas a este objeto ObjectSecurity. Los objetos primarios no pueden modificar las reglas de auditoría protegidas a través de la herencia.

(Heredado de ObjectSecurity)
SetGroup(IdentityReference)

Establece el grupo principal del descriptor de seguridad asociado a este objeto ObjectSecurity.

(Heredado de ObjectSecurity)
SetOwner(IdentityReference)

Establece el propietario del descriptor de seguridad asociado a este objeto ObjectSecurity.

(Heredado de ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[])

Establece el descriptor de seguridad para este objeto ObjectSecurity de la matriz especificada de valores de bytes.

(Heredado de ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[], AccessControlSections)

Establece las secciones especificadas del descriptor de seguridad para este objeto ObjectSecurity de la matriz especificada de valores de bytes.

(Heredado de ObjectSecurity)
SetSecurityDescriptorSddlForm(String)

Establece el descriptor de seguridad para este objeto ObjectSecurity de la cadena del lenguaje de definición de descriptores de seguridad (SDDL) especificada.

(Heredado de ObjectSecurity)
SetSecurityDescriptorSddlForm(String, AccessControlSections)

Establece las secciones especificadas del descriptor de seguridad para este objeto ObjectSecurity de la cadena de lenguaje de definición de descriptores de seguridad (SDDL) especificada.

(Heredado de ObjectSecurity)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
WriteLock()

Bloquea este objeto ObjectSecurity para el acceso de escritura.

(Heredado de ObjectSecurity)
WriteUnlock()

Desbloquea este objeto ObjectSecurity para el acceso de escritura.

(Heredado de ObjectSecurity)

Se aplica a