File.GetAccessControl Método
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í.
Obtiene un objeto FileSecurity que encapsula las entradas de la lista de control de acceso (ACL) para un archivo especificado.
Sobrecargas
GetAccessControl(String, AccessControlSections) |
Obtiene un objeto FileSecurity que encapsula el tipo especificado de las entradas de la lista de control de acceso (ACL) para un archivo determinado. |
GetAccessControl(String) |
Obtiene un objeto FileSecurity que encapsula las entradas de la lista de control de acceso (ACL) para un archivo especificado. |
Comentarios
Use los GetAccessControl métodos para recuperar las entradas de la lista de control de acceso (ACL) de un archivo especificado.
GetAccessControl(String, AccessControlSections)
Obtiene un objeto FileSecurity que encapsula el tipo especificado de las entradas de la lista de control de acceso (ACL) para un archivo determinado.
public:
static System::Security::AccessControl::FileSecurity ^ GetAccessControl(System::String ^ path, System::Security::AccessControl::AccessControlSections includeSections);
public static System.Security.AccessControl.FileSecurity GetAccessControl (string path, System.Security.AccessControl.AccessControlSections includeSections);
static member GetAccessControl : string * System.Security.AccessControl.AccessControlSections -> System.Security.AccessControl.FileSecurity
Public Shared Function GetAccessControl (path As String, includeSections As AccessControlSections) As FileSecurity
Parámetros
- path
- String
Ruta de acceso a un archivo que contiene un objeto FileSecurity que describe la información de la lista de control de acceso (ACL) del archivo.
- includeSections
- AccessControlSections
Uno de los valores AccessControlSections que especifica el tipo de información de la lista de control de acceso (ACL) que se recibe.
Devoluciones
Objeto FileSecurity que encapsula las reglas de control de acceso correspondientes al archivo descrito por el parámetro path
.
Excepciones
Se produjo un error de E/S al abrir el archivo.
El parámetro path
es null
.
No se encuentra el archivo.
El parámetro path
especificó un archivo que es de solo lectura.
o bien
Esta operación no es compatible con la plataforma actual.
o bien
El parámetro path
especificó un directorio.
o bien
El llamador no dispone del permiso requerido.
Comentarios
Use el GetAccessControl método para recuperar las entradas de la lista de control de acceso (ACL) de un archivo.
Una ACL describe a individuos o grupos que tienen derechos, o no, a acciones específicas en el archivo especificado. Para obtener más información, vea Cómo: Agregar o quitar entradas de la lista de control de acceso.
En entornos NTFS, ReadAttributes y ReadExtendedAttributes se conceden al usuario si el usuario tiene ListDirectory derechos en la carpeta primaria. Para denegar ReadAttributes y ReadExtendedAttributes, denegar ListDirectory en el directorio primario.
Se aplica a
GetAccessControl(String)
Obtiene un objeto FileSecurity que encapsula las entradas de la lista de control de acceso (ACL) para un archivo especificado.
public:
static System::Security::AccessControl::FileSecurity ^ GetAccessControl(System::String ^ path);
public static System.Security.AccessControl.FileSecurity GetAccessControl (string path);
static member GetAccessControl : string -> System.Security.AccessControl.FileSecurity
Public Shared Function GetAccessControl (path As String) As FileSecurity
Parámetros
- path
- String
Ruta de acceso a un archivo que contiene un objeto FileSecurity que describe la información de la lista de control de acceso (ACL) del archivo.
Devoluciones
Objeto FileSecurity que encapsula las reglas de control de acceso correspondientes al archivo descrito por el parámetro path
.
Excepciones
Se produjo un error de E/S al abrir el archivo.
El parámetro path
es null
.
No se encuentra el archivo.
El parámetro path
especificó un archivo que es de solo lectura.
o bien
Esta operación no es compatible con la plataforma actual.
o bien
El parámetro path
especificó un directorio.
o bien
El llamador no dispone del permiso requerido.
Ejemplos
En el ejemplo de código siguiente se usan los GetAccessControl métodos y SetAccessControl 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);
}
}
}
open System.IO
open System.Security.AccessControl
// Adds an ACL entry on the specified file for the specified account.
let addFileSecurity fileName (account: string) rights controlType =
// Get a FileSecurity object that represents the
// current security settings.
let fSecurity = File.GetAccessControl fileName
// Add the FileSystemAccessRule to the security settings.
FileSystemAccessRule(account, rights, controlType)
|> fSecurity.AddAccessRule
// Set the new access settings.
File.SetAccessControl(fileName, fSecurity)
// Removes an ACL entry on the specified file for the specified account.
let removeFileSecurity fileName (account: string) rights controlType =
// Get a FileSecurity object that represents the
// current security settings.
let fSecurity = File.GetAccessControl fileName
// Remove the FileSystemAccessRule from the security settings.
fSecurity.RemoveAccessRule(FileSystemAccessRule(account, rights, controlType))
|> ignore
// Set the new access settings.
File.SetAccessControl(fileName, fSecurity)
let fileName = "test.xml"
printfn $"Adding access control entry for {fileName}"
// Add the access control entry to the file.
addFileSecurity fileName @"DomainName\AccountName" FileSystemRights.ReadData AccessControlType.Allow
printfn $"Removing access control entry from {fileName}"
// Remove the access control entry from the file.
removeFileSecurity fileName @"DomainName\AccountName" FileSystemRights.ReadData AccessControlType.Allow
printfn "Done."
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
Use el GetAccessControl método para recuperar las entradas de la lista de control de acceso (ACL) de un archivo.
Una ACL describe a individuos o grupos que tienen derechos, o no, a acciones específicas en el archivo especificado. Para obtener más información, vea Cómo: Agregar o quitar entradas de la lista de control de acceso.
En entornos NTFS, ReadAttributes y ReadExtendedAttributes se conceden al usuario si el usuario tiene ListDirectory derechos en la carpeta primaria. Para denegar ReadAttributes y ReadExtendedAttributes, denegar ListDirectory en el directorio primario.
Se aplica a
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: a lo largo de 2024, eliminaremos gradualmente los problemas de GitHub como mecanismo de comentarios para el contenido y lo reemplazaremos por un nuevo sistema de comentarios. Para obtener más información, consulte:Enviar y ver comentarios de