FileSecurity Clase

Definición

Representa el control de acceso y la seguridad de auditoría de un archivo. Esta clase no se puede heredar.

public ref class FileSecurity sealed : System::Security::AccessControl::FileSystemSecurity
public sealed class FileSecurity : System.Security.AccessControl.FileSystemSecurity
[System.Security.SecurityCritical]
public sealed class FileSecurity : System.Security.AccessControl.FileSystemSecurity
type FileSecurity = class
    inherit FileSystemSecurity
[<System.Security.SecurityCritical>]
type FileSecurity = class
    inherit FileSystemSecurity
Public NotInheritable Class FileSecurity
Inherits FileSystemSecurity
Herencia
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 FileSecurity especifica los derechos de acceso de un archivo del sistema y cómo se auditan los intentos de acceso. Esta clase representa los derechos de acceso y auditoría como un conjunto de reglas. Cada regla de acceso se representa mediante un objeto FileSystemAccessRule. Cada regla de auditoría se representa mediante un objeto FileSystemAuditRule.

La clase FileSecurity es una abstracción del sistema de seguridad de archivos subyacente de Microsoft Windows. En este sistema, cada archivo tiene una lista de control de acceso discrecional (DACL), que controla el acceso al archivo 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 las entradas de control de acceso (ACA) que componen DACL y SACL.

La clase FileSecurity oculta muchos de los detalles de las DACL y SACL; no tiene que preocuparse por la ordenación ace o las DACL nulas.

Use la clase FileSecurity para recuperar, agregar o cambiar las reglas de acceso que representan daCL y SACL de un archivo.

Use los siguientes métodos dependientes de la implementación de .NET para agregar o recuperar las reglas de acceso o auditoría 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()

Constructores

FileSecurity()

Inicializa una nueva instancia de la clase FileSecurity.

FileSecurity(String, AccessControlSections)

Inicializa una nueva instancia de la clase FileSecurity a partir de un archivo especificado utilizando los valores especificados de la enumeración AccessControlSections.

Propiedades

AccessRightType

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

(Heredado de FileSystemSecurity)
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.

(Heredado de FileSystemSecurity)
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.

(Heredado de FileSystemSecurity)
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.

(Heredado de FileSystemSecurity)
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.

(Heredado de FileSystemSecurity)
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.

(Heredado de FileSystemSecurity)
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.

(Heredado de FileSystemSecurity)
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.

(Heredado de FileSystemSecurity)
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.

(Heredado de FileSystemSecurity)
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.

(Heredado de FileSystemSecurity)
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.

(Heredado de FileSystemSecurity)
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.

(Heredado de FileSystemSecurity)
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.

(Heredado de FileSystemSecurity)
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.

(Heredado de FileSystemSecurity)
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.

(Heredado de FileSystemSecurity)
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.

(Heredado de FileSystemSecurity)
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