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 FileSecurity clase para agregar y, a continuación, quitar una entrada de lista de control de acceso (ACL) de un archivo. Para ejecutar este ejemplo, debe proporcionar una cuenta de usuario o grupo válida.

using namespace System;
using namespace System::IO;
using namespace System::Security::AccessControl;

// Adds an ACL entry on the specified file for the specified account.

void AddFileSecurity(String^ fileName, String^ account, 
                        FileSystemRights rights, AccessControlType controlType)
{
    // Get a FileSecurity object that represents the 
    // current security settings.
    FileSecurity^ fSecurity = File::GetAccessControl(fileName);

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

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

// Removes an ACL entry on the specified file for the specified account.

void RemoveFileSecurity(String^ fileName, String^ account, 
                        FileSystemRights rights, AccessControlType controlType)
{

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

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

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

int main()
{
    try
    {
        String^ fileName = "test.xml";

        Console::WriteLine("Adding access control entry for " + fileName);

        // Add the access control entry to the file.
        AddFileSecurity(fileName, "MYDOMAIN\\MyAccount", 
            FileSystemRights::ReadData, AccessControlType::Allow);

        Console::WriteLine("Removing access control entry from " + fileName);

        // Remove the access control entry from the file.
        RemoveFileSecurity(fileName, "MYDOMAIN\\MyAccount", 
            FileSystemRights::ReadData, AccessControlType::Allow);

        Console::WriteLine("Done.");
    }
    catch (Exception^ ex)
    {
        Console::WriteLine(ex->Message);
    }
}
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)
        {

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

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

            // Set the new access settings.
            File.SetAccessControl(fileName, 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)
        {

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

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

            // 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.
            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)
  
        ' Get a FileSecurity object that represents the 
        ' current security settings.
        Dim fSecurity As FileSecurity = File.GetAccessControl(fileName)

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

        fSecurity.AddAccessRule(accessRule)

        ' Set the new access settings.
        File.SetAccessControl(fileName, 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)

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

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

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

    End Sub
End Module

Comentarios

La FileSystemSecurity clase es la clase base para las FileSecurity clases 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 FileSystemSecurity clase representa los derechos de acceso y auditoría como un conjunto de reglas. Cada regla de acceso se representa mediante un FileSystemAccessRule objeto , mientras que cada regla de auditoría está representada por un FileSystemAuditRule objeto .

La FileSystemSecurity clase 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 FileSystemAccessRule clases y FileSystemAuditRule son abstracciones de entradas de control de acceso (ACE) que componen DACL y SACL.

La FileSystemSecurity clase oculta muchos detalles de DACL y SACL; no tiene que preocuparse por el orden ACE o DACLS null.

Para conservar información nueva o modificada de la lista de control de acceso (ACL) en un archivo, use el SetAccessControl método o SetAccessControl . Para conservar información de ACL nueva o modificada en un directorio, use el SetAccessControl método o SetAccessControl .

Para recuperar información de ACL de un archivo, use el GetAccessControl método o GetAccessControl . Para recuperar información de ACL de un directorio, use el GetAccessControl método o GetAccessControl .

Propiedades

AccessRightType

Obtiene la enumeración que la clase FileSystemSecurity utiliza 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 la clase FileSystemSecurity utiliza para representar las reglas de acceso.

AreAccessRulesCanonical

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

(Heredado de ObjectSecurity)
AuditRuleType

Obtiene el tipo que utiliza la clase FileSystemSecurity para representar las 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 de 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 que se puede proteger.

(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 indicado con los derechos de acceso, el control de acceso y los marcadores especificados.

AddAccessRule(AccessRule)

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

(Heredado de CommonObjectSecurity)
AddAccessRule(FileSystemAccessRule)

Agrega el permiso de la 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 de sistema (SACL) asociada al 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 que el 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 primario asociado al propietario especificado.

(Heredado de ObjectSecurity)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetOwner(Type)

Obtiene el propietario asociado al grupo primario especificado.

(Heredado de ObjectSecurity)
GetSecurityDescriptorBinaryForm()

Devuelve una matriz de valores de byte que representa la información del descriptor de seguridad para 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 Object actual.

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

Aplica la modificación especificada a la lista de control de acceso discrecional (DACL) (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) (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 el almacenamiento permanente. Se recomienda que los valores de los parámetros includeSections pasados al constructor y a los métodos de persistencia sean idénticos.

(Heredado de ObjectSecurity)
Persist(SafeHandle, AccessControlSections)

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

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

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

(Heredado de NativeObjectSecurity)
Persist(String, AccessControlSections)

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

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

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

(Heredado de NativeObjectSecurity)
PurgeAccessRules(IdentityReference)

Quita todas las reglas de acceso asociadas al objeto IdentityReference especificado.

(Heredado de ObjectSecurity)
PurgeAuditRules(IdentityReference)

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

(Heredado de ObjectSecurity)
ReadLock()

Bloquea este objeto ObjectSecurity para acceso de lectura.

(Heredado de ObjectSecurity)
ReadUnlock()

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

(Heredado de CommonObjectSecurity)
RemoveAccessRule(FileSystemAccessRule)

Quita todos permisos de la lista de control de acceso (ACL) Allow o Deny 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 al objeto CommonObjectSecurity.

(Heredado de CommonObjectSecurity)
RemoveAccessRuleAll(FileSystemAccessRule)

Quita todos los permisos de la 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 al objeto CommonObjectSecurity.

(Heredado de CommonObjectSecurity)
RemoveAccessRuleSpecific(FileSystemAccessRule)

Quita un solo permiso de la lista de control de acceso (ACL) Allow o Deny 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 de sistema (SACL) asociada al objeto CommonObjectSecurity.

(Heredado de CommonObjectSecurity)
RemoveAuditRule(FileSystemAuditRule)

Quita todas las reglas de auditoría Allow o Deny coincidentes 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 de sistema (SACL) asociada al objeto CommonObjectSecurity.

(Heredado de CommonObjectSecurity)
RemoveAuditRuleAll(FileSystemAuditRule)

Quita todas las reglas de auditoría para el 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 de sistema (SACL) asociada al objeto CommonObjectSecurity.

(Heredado de CommonObjectSecurity)
RemoveAuditRuleSpecific(FileSystemAuditRule)

Quita una regla de auditoría Allow o Deny coincidente del archivo o directorio actual.

ResetAccessRule(AccessRule)

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

(Heredado de CommonObjectSecurity)
ResetAccessRule(FileSystemAccessRule)

Agrega el permiso de la 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 al objeto CommonObjectSecurity y, a continuación, agrega la regla de acceso especificada.

(Heredado de CommonObjectSecurity)
SetAccessRule(FileSystemAccessRule)

Establece el permiso de la 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 protegido 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 de sistema (SACL) asociada al 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 primario 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 de 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