FileSystemAccessRule Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa una abstracción de una entrada de control de acceso (ACE) que define una regla de acceso para un archivo o directorio. Esta clase no puede heredarse.
public ref class FileSystemAccessRule sealed : System::Security::AccessControl::AccessRule
public sealed class FileSystemAccessRule : System.Security.AccessControl.AccessRule
[System.Security.SecurityCritical]
public sealed class FileSystemAccessRule : System.Security.AccessControl.AccessRule
type FileSystemAccessRule = class
inherit AccessRule
[<System.Security.SecurityCritical>]
type FileSystemAccessRule = class
inherit AccessRule
Public NotInheritable Class FileSystemAccessRule
Inherits AccessRule
- Herencia
- Atributos
Ejemplos
En el ejemplo de código siguiente se usa la FileSecurity clase para agregar y, a continuación, quitar una entrada de control de acceso (ACE) de un archivo. Para ejecutar este ejemplo, debe proporcionar una cuenta de usuario o grupo válida.
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 FileSystemAccessRule clase representa una abstracción de una entrada de control de acceso subyacente (ACE) que especifica una cuenta de usuario, el tipo de acceso que se va a proporcionar (lectura, escritura, etc.) y si se debe permitir o denegar ese derecho. Esta clase también puede especificar cómo se propagan las reglas de acceso a objetos secundarios.
Use la FileSystemAccessRule clase para crear una nueva regla de acceso. Puede conservar la regla mediante la FileSecurity clase o DirectorySecurity .
Constructores
FileSystemAccessRule(IdentityReference, FileSystemRights, AccessControlType) |
Inicializa una nueva instancia de la clase FileSystemAccessRule utilizando una referencia a una cuenta de usuario, un valor que especifica el tipo de operación asociado a la regla de auditoría y un valor que especifica si se va a permitir o denegar la operación. |
FileSystemAccessRule(IdentityReference, FileSystemRights, InheritanceFlags, PropagationFlags, AccessControlType) |
Inicializa una nueva instancia de la clase FileSystemAccessRule utilizando una referencia a una cuenta de usuario, un valor que especifica el tipo de operación asociado a la regla de acceso, un valor que determina cómo se heredan los derechos, un valor que determina cómo se propagan los derechos y un valor que especifica si se va a permitir o denegar la operación. |
FileSystemAccessRule(String, FileSystemRights, AccessControlType) |
Inicializa una nueva instancia de la clase FileSystemAccessRule utilizando un nombre de una cuenta de usuario, un valor que especifica el tipo de operación asociado a la regla de auditoría y un valor que describe si se va a permitir o denegar la operación. |
FileSystemAccessRule(String, FileSystemRights, InheritanceFlags, PropagationFlags, AccessControlType) |
Inicializa una nueva instancia de la clase FileSystemAccessRule utilizando un nombre de una cuenta de usuario, un valor que especifica el tipo de operación asociado a la regla de acceso, un valor que determina cómo se heredan los derechos, un valor que determina cómo se propagan los derechos y un valor que especifica si se va a permitir o denegar la operación. |
Propiedades
AccessControlType |
Obtiene el valor de AccessControlType asociado a este objeto AccessRule. (Heredado de AccessRule) |
AccessMask |
Obtiene la máscara de acceso de esta regla. (Heredado de AuthorizationRule) |
FileSystemRights |
Obtiene los marcadores FileSystemRights asociados al objeto FileSystemAccessRule actual. |
IdentityReference |
Obtiene el IdentityReference al que se aplica esta regla. (Heredado de AuthorizationRule) |
InheritanceFlags |
Obtiene el valor de los indicadores que determinan cómo heredan esta regla los objetos secundarios. (Heredado de AuthorizationRule) |
IsInherited |
Obtiene un valor que indica si esta regla se establece explícitamente o se hereda de un objeto contenedor primario. (Heredado de AuthorizationRule) |
PropagationFlags |
Obtiene el valor de las marcas de propagación que determinan cómo se propaga la herencia de esta regla a los objetos secundarios. Esta propiedad es importante solo cuando el valor de la enumeración InheritanceFlags no es None. (Heredado de AuthorizationRule) |
Métodos
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
GetHashCode() |
Sirve como la función hash predeterminada. (Heredado de Object) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |