FileSecurity Clase

Definición

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

public ref class FileSecurity sealed : System::Security::AccessControl::FileSystemSecurity
public sealed class FileSecurity : System.Security.AccessControl.FileSystemSecurity
type FileSecurity = class
    inherit FileSystemSecurity
Public NotInheritable Class FileSecurity
Inherits FileSystemSecurity
Herencia

Ejemplos

En el ejemplo de código siguiente se usa la FileSecurity clase 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 FileSecurity clase 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 FileSystemAccessRule objeto . Cada regla de auditoría se representa mediante un FileSystemAuditRule objeto .

La clase /FileSecurity es una abstracción del sistema de seguridad de archivos Microsoft Windows subyacente. 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 FileSystemAccessRule clases y FileSystemAuditRule son abstracciones de las entradas de control de acceso (ACA) que componen DACLs y SACL.

La FileSecurity clase oculta muchos de los detalles de las DACL y SACL; no tiene que preocuparse por el orden ace o las DACL nulas.

Use la FileSecurity clase 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 .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
.NET FileSystemAclExtensions.SetAccessControl(FileInfo, FileSecurity) FileSystemAclExtensions.GetAccessControl(FileInfo)
.NET Framework FileInfo.SetAccessControl(FileSecurity) FileInfo.GetAccessControl()

Constructores

Nombre Description
FileSecurity()

Inicializa una nueva instancia de la clase FileSecurity.

FileSecurity(String, AccessControlSections)

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

Propiedades

Nombre Description
AccessRightType

Obtiene la enumeración que usa la FileSystemSecurity clase para representar 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 ObjectSecurity objeto.

(Heredado de ObjectSecurity)
AccessRuleType

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

(Heredado de FileSystemSecurity)
AreAccessRulesCanonical

Obtiene un valor booleano que especifica si las reglas de acceso asociadas a este ObjectSecurity objeto 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 ObjectSecurity objeto está protegida.

(Heredado de ObjectSecurity)
AreAuditRulesCanonical

Obtiene un valor booleano que especifica si las reglas de auditoría asociadas a este ObjectSecurity objeto 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 ObjectSecurity objeto 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 ObjectSecurity objeto.

(Heredado de ObjectSecurity)
AuditRuleType

Obtiene el tipo que usa la FileSystemSecurity clase 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 ObjectSecurity objeto es un objeto contenedor.

(Heredado de ObjectSecurity)
IsDS

Obtiene un valor booleano que especifica si este ObjectSecurity objeto 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)

Métodos

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

Inicializa una nueva instancia de la FileSystemAccessRule clase 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 CommonObjectSecurity objeto.

(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 CommonObjectSecurity objeto.

(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 FileSystemAuditRule clase 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 la 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 ObjectSecurity objeto.

(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 ObjectSecurity objeto.

(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 CommonObjectSecurity objeto.

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

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

(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 CommonObjectSecurity objeto.

(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 ObjectSecurity objeto.

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

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

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

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

(Heredado de NativeObjectSecurity)
Persist(SafeHandle, AccessControlSections)

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

(Heredado de NativeObjectSecurity)
PurgeAccessRules(IdentityReference)

Quita todas las reglas de acceso asociadas al especificado IdentityReference.

(Heredado de ObjectSecurity)
PurgeAuditRules(IdentityReference)

Quita todas las reglas de auditoría asociadas al especificado IdentityReference.

(Heredado de ObjectSecurity)
ReadLock()

Bloquea este ObjectSecurity objeto para el acceso de lectura.

(Heredado de ObjectSecurity)
ReadUnlock()

Desbloquea este ObjectSecurity objeto 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 CommonObjectSecurity objeto.

(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 CommonObjectSecurity objeto.

(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 CommonObjectSecurity objeto.

(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 CommonObjectSecurity objeto.

(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 CommonObjectSecurity objeto.

(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 CommonObjectSecurity objeto.

(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 CommonObjectSecurity objeto 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 CommonObjectSecurity objeto 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 ObjectSecurity objeto. 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 CommonObjectSecurity objeto 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 ObjectSecurity objeto. 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 para el descriptor de seguridad asociado a este ObjectSecurity objeto.

(Heredado de ObjectSecurity)
SetOwner(IdentityReference)

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

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

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

(Heredado de ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[])

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

(Heredado de ObjectSecurity)
SetSecurityDescriptorSddlForm(String, AccessControlSections)

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

(Heredado de ObjectSecurity)
SetSecurityDescriptorSddlForm(String)

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

(Heredado de ObjectSecurity)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
WriteLock()

Bloquea este ObjectSecurity objeto para el acceso de escritura.

(Heredado de ObjectSecurity)
WriteUnlock()

Desbloquea este ObjectSecurity objeto para el acceso de escritura.

(Heredado de ObjectSecurity)

Se aplica a