FileIOPermission Clase

Definición

Controla la capacidad para tener acceso a archivos y carpetas.Controls the ability to access files and folders. Esta clase no puede heredarse.This class cannot be inherited.

public ref class FileIOPermission sealed : System::Security::CodeAccessPermission, System::Security::Permissions::IUnrestrictedPermission
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public sealed class FileIOPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
type FileIOPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
Public NotInheritable Class FileIOPermission
Inherits CodeAccessPermission
Implements IUnrestrictedPermission
Herencia
FileIOPermission
Atributos
Implementaciones

Ejemplos

En los siguientes ejemplos se muestra el FileIOPermissioncódigo que usa.The following examples illustrate code that uses FileIOPermission. Después de las dos líneas de código siguientes, el f objeto representa el permiso para leer todos los archivos de los discos locales del equipo cliente.After the following two lines of code, the object f represents permission to read all files on the client computer's local disks. A continuación, el ejemplo de código solicita el permiso para determinar si la aplicación tiene permiso para leer los archivos.The code example then demands the permission to determine whether the application has permission to read the files.

FileIOPermission^ f = gcnew FileIOPermission( PermissionState::None );
f->AllLocalFiles = FileIOPermissionAccess::Read;
try
{
    f->Demand();
}
catch (SecurityException^ s)
{
    Console::WriteLine(s->Message);
}
FileIOPermission f = new FileIOPermission(PermissionState.None);
f.AllLocalFiles = FileIOPermissionAccess.Read;
try
{
    f.Demand();
}
catch (SecurityException s)
{
    Console.WriteLine(s.Message);
}

Dim f As New FileIOPermission(PermissionState.None)
f.AllLocalFiles = FileIOPermissionAccess.Read
Try
    f.Demand()
Catch s As SecurityException
    Console.WriteLine(s.Message)
End Try

Después de las dos líneas de código siguientes, el f2 objeto representa los permisos para leer C:\test_r y leer y escribir en C:\example\out.txt.After the following two lines of code, the object f2 represents permissions to read C:\test_r and read and write to C:\example\out.txt. Ready Write representan los permisos de archivo o carpeta tal y como se ha descrito anteriormente.Read and Write represent the file/folder permissions as previously described. Después de crear el permiso, el código solicita el permiso para determinar si la aplicación tiene el derecho de leer y escribir en el archivo.After creating the permission, the code demands the permission to determine whether the application has the right to read and write to the file.

FileIOPermission^ f2 = gcnew FileIOPermission( FileIOPermissionAccess::Read,"C:\\test_r" );
f2->AddPathList( (FileIOPermissionAccess) (FileIOPermissionAccess::Write | FileIOPermissionAccess::Read), "C:\\example\\out.txt" );
try
{
    f2->Demand();
}
catch (SecurityException^ s)
{
    Console::WriteLine(s->Message);
}
FileIOPermission f2 = new FileIOPermission(FileIOPermissionAccess.Read, "C:\\test_r");
f2.AddPathList(FileIOPermissionAccess.Write | FileIOPermissionAccess.Read, "C:\\example\\out.txt");
try
{
    f2.Demand();
}
catch (SecurityException s)
{
    Console.WriteLine(s.Message);
}
Dim f2 As New FileIOPermission(FileIOPermissionAccess.Read, "C:\test_r")
f2.AddPathList(FileIOPermissionAccess.Write Or FileIOPermissionAccess.Read, "C:\example\out.txt")
Try
    f2.Demand()
Catch s As SecurityException
    Console.WriteLine(s.Message)
End Try

Comentarios

Este permiso distingue entre los cuatro tipos de acceso de e/s de archivo FileIOPermissionAccesssiguientes proporcionados por:This permission distinguishes between the following four types of file IO access provided by FileIOPermissionAccess:

  • Read: Acceso de lectura al contenido del archivo o acceso a la información sobre el archivo, como su longitud o la hora de la última modificación.Read: Read access to the contents of the file or access to information about the file, such as its length or last modification time.

  • Write: Acceso de escritura al contenido del archivo o acceso para cambiar la información sobre el archivo, como su nombre.Write: Write access to the contents of the file or access to change information about the file, such as its name. También permite la eliminación y sobrescritura.Also allows for deletion and overwriting.

  • Append: Capacidad de escribir solo en el final de un archivo.Append: Ability to write to the end of a file only. No se puede leer.No ability to read.

  • PathDiscovery: Acceso a la información de la propia ruta de acceso.PathDiscovery: Access to the information in the path itself. Esto ayuda a proteger la información confidencial de la ruta de acceso, como los nombres de usuario, así como la información sobre la estructura de directorios que se revela en la ruta de acceso.This helps protect sensitive information in the path, such as user names, as well as information about the directory structure that is revealed in the path. Este valor no concede acceso a los archivos o las carpetas que representa la ruta de acceso.This value does not grant access to files or folders represented by the path.

Nota

Conceder Write acceso a un ensamblado es similar a otorgarle plena confianza.Giving Write access to an assembly is similar to granting it full trust. Si una aplicación no debe escribir en el sistema de archivos, no debe tener Write acceso.If an application should not write to the file system, it should not have Write access.

Todos estos permisos son independientes, lo que significa que los derechos de uno no implican derechos a otro.All these permissions are independent, meaning that rights to one do not imply rights to another. Por ejemplo, Write el permiso no implica el permiso Read para Appendo.For example, Write permission does not imply permission to Read or Append. Si se desea más de un permiso, se pueden combinar mediante una operación OR bit a bit, como se muestra en el ejemplo de código siguiente.If more than one permission is desired, they can be combined using a bitwise OR as shown in the code example that follows. El permiso de archivo se define en términos de rutas de acceso absolutas canónicas; las llamadas siempre deben realizarse con rutas de acceso de archivo canónicas.File permission is defined in terms of canonical absolute paths; calls should always be made with canonical file paths.

FileIOPermissiondescribe las operaciones protegidas en archivos y carpetas.FileIOPermission describes protected operations on files and folders. La File clase ayuda a proporcionar acceso seguro a archivos y carpetas.The File class helps provide secure access to files and folders. La comprobación de acceso de seguridad se realiza cuando se crea el identificador del archivo.The security access check is performed when the handle to the file is created. Al realizar la comprobación en el momento de la creación, se minimiza el impacto en el rendimiento de la comprobación de seguridad.By doing the check at creation time, the performance impact of the security check is minimized. La apertura de un archivo se produce una vez, mientras que la lectura y la escritura pueden producirse varias veces.Opening a file happens once, while reading and writing can happen multiple times. Una vez abierto el archivo, no se realiza ninguna otra comprobación.Once the file is opened, no further checks are done. Si el objeto se pasa a un llamador que no es de confianza, se puede usar incorrectamente.If the object is passed to an untrusted caller, it can be misused. Por ejemplo, los identificadores de archivo no deben almacenarse en estáticas globales públicas, donde el código con menos permisos puede acceder a ellos.For example, file handles should not be stored in public global statics where code with less permission can access them.

FileIOPermissionAccessespecifica las acciones que se pueden realizar en el archivo o la carpeta.FileIOPermissionAccess specifies actions that can be performed on the file or folder. Además, estas acciones se pueden combinar con una operación OR bit a bit para formar instancias complejas.In addition, these actions can be combined using a bitwise OR to form complex instances.

El acceso a una carpeta implica el acceso a todos los archivos que contiene, así como el acceso a todos los archivos y carpetas de sus subcarpetas.Access to a folder implies access to all the files it contains, as well as access to all the files and folders in its subfolders. Por ejemplo, Read el acceso a C:\folder1\ Read implica el acceso a C:\folder1\file1.txt\, C:\folder1\folder2, C:\folder1\folder2\file2.txt, etc.For example, Read access to C:\folder1\ implies Read access to C:\folder1\file1.txt, C:\folder1\folder2\, C:\folder1\folder2\file2.txt, and so on.

Nota

En las versiones de la .NET Framework antes .NET Framework 4.NET Framework 4de, puede utilizar el CodeAccessPermission.Deny método para evitar el acceso involuntario a los recursos del sistema por código de confianza.In versions of the .NET Framework before the .NET Framework 4.NET Framework 4, you could use the CodeAccessPermission.Deny method to prevent inadvertent access to system resources by trusted code. Denyestá ahora obsoleto y el acceso a los recursos está determinado únicamente por el conjunto de permisos concedidos para un ensamblado.Deny is now obsolete, and access to resources is now determined solely by the granted permission set for an assembly. Para limitar el acceso a los archivos, debe ejecutar código de confianza parcial en un espacio aislado y asignarle permisos solo a los recursos a los que el código tiene permiso de acceso.To limit access to files, you must run partially trusted code in a sandbox and assign it permissions only to resources that the code is allowed to access. Para obtener información sobre la ejecución de una aplicación en un espacio aislado, consulte Cómo: Ejecutar código de confianza parcial en un espacio aislado.For information about running an application in a sandbox, see How to: Run Partially Trusted Code in a Sandbox.

Constructores

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String)

Inicializa una nueva instancia de la clase FileIOPermission con el acceso especificado al archivo o directorio designado y los derechos de acceso especificados para la información de control de archivos.Initializes a new instance of the FileIOPermission class with the specified access to the designated file or directory and the specified access rights to file control information.

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String[])

Inicializa una nueva instancia de la clase FileIOPermission con el acceso especificado a los archivos y directorios designados y los derechos de acceso especificados para la información de control de archivos.Initializes a new instance of the FileIOPermission class with the specified access to the designated files and directories and the specified access rights to file control information.

FileIOPermission(FileIOPermissionAccess, String)

Inicializa una nueva instancia de la clase FileIOPermission con el acceso especificado a los archivos o directorios designados.Initializes a new instance of the FileIOPermission class with the specified access to the designated file or directory.

FileIOPermission(FileIOPermissionAccess, String[])

Inicializa una nueva instancia de la clase FileIOPermission con el acceso especificado a los archivos y directorios designados.Initializes a new instance of the FileIOPermission class with the specified access to the designated files and directories.

FileIOPermission(PermissionState)

Inicializa una nueva instancia de la clase FileIOPermission con permisos totalmente limitados o ilimitados, según se haya especificado.Initializes a new instance of the FileIOPermission class with fully restricted or unrestricted permission as specified.

Propiedades

AllFiles

Obtiene o establece el acceso permitido a todos los archivos.Gets or sets the permitted access to all files.

AllLocalFiles

Obtiene o establece el acceso permitido a todos los archivos locales.Gets or sets the permitted access to all local files.

Métodos

AddPathList(FileIOPermissionAccess, String)

Agrega acceso para el archivo o directorio especificado en el estado existente del permiso.Adds access for the specified file or directory to the existing state of the permission.

AddPathList(FileIOPermissionAccess, String[])

Agrega acceso para los archivos y directorios especificados en el estado existente del permiso.Adds access for the specified files and directories to the existing state of the permission.

Assert()

Declara que el código de llamada puede tener acceso al recurso protegido por una demanda de permiso a través del código que llama a este método, incluso si los autores de la llamada situados en una posición más alta de la pila no tienen permiso para tener acceso al recurso.Declares that the calling code can access the resource protected by a permission demand through the code that calls this method, even if callers higher in the stack have not been granted permission to access the resource. El uso de Assert() puede crear problemas de seguridad.Using Assert() can create security issues.

(Heredado de CodeAccessPermission)
Copy()

Crea y devuelve una copia idéntica del permiso actual.Creates and returns an identical copy of the current permission.

Demand()

Fuerza SecurityException en tiempo de ejecución si todos los llamadores situados en la pila de llamadas no disponen del permiso especificado por la instancia actual.Forces a SecurityException at run time if all callers higher in the call stack have not been granted the permission specified by the current instance.

(Heredado de CodeAccessPermission)
Deny()

Evita que los llamadores situados en la parte superior de la pila de llamadas utilicen el código que llama a este método para obtener acceso al recurso especificado por la instancia actual.Prevents callers higher in the call stack from using the code that calls this method to access the resource specified by the current instance.

(Heredado de CodeAccessPermission)
Equals(Object)

Determina si el objeto FileIOPermission especificado es igual al objeto FileIOPermission actual.Determines whether the specified FileIOPermission object is equal to the current FileIOPermission.

FromXml(SecurityElement)

Reconstruye un permiso con un estado especificado a partir de una codificación XML.Reconstructs a permission with a specified state from an XML encoding.

GetHashCode()

Obtiene un código hash para el objeto FileIOPermission que es adecuado para su uso en algoritmos hash y estructuras de datos como una tabla hash.Gets a hash code for the FileIOPermission object that is suitable for use in hashing algorithms and data structures such as a hash table.

GetPathList(FileIOPermissionAccess)

Obtiene todos los archivos y directorios con el FileIOPermissionAccess especificado.Gets all files and directories with the specified FileIOPermissionAccess.

GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
Intersect(IPermission)

Crea y devuelve un permiso que es la intersección del permiso actual y el permiso especificado.Creates and returns a permission that is the intersection of the current permission and the specified permission.

IsSubsetOf(IPermission)

Determina si el permiso actual es un subconjunto del permiso especificado.Determines whether the current permission is a subset of the specified permission.

IsUnrestricted()

Devuelve un valor que indica si el permiso actual no está restringido.Returns a value indicating whether the current permission is unrestricted.

MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
PermitOnly()

Evita que los llamadores situados en la parte superior de la pila de llamadas utilicen el código que llama a este método para obtener acceso a todos los recursos con la excepción del recurso especificado por la instancia actual.Prevents callers higher in the call stack from using the code that calls this method to access all resources except for the resource specified by the current instance.

(Heredado de CodeAccessPermission)
SetPathList(FileIOPermissionAccess, String)

Establece el acceso especificado al archivo o directorio especificado, reemplazando el estado existente del permiso.Sets the specified access to the specified file or directory, replacing the existing state of the permission.

SetPathList(FileIOPermissionAccess, String[])

Establece el acceso especificado a los archivos y directorios especificados, reemplazando el estado actual para el acceso especificado con el nuevo conjunto de rutas de acceso.Sets the specified access to the specified files and directories, replacing the current state for the specified access with the new set of paths.

ToString()

Crea y devuelve una cadena que representa el objeto de permiso actual.Creates and returns a string representation of the current permission object.

(Heredado de CodeAccessPermission)
ToXml()

Crea una codificación XML del permiso y su estado actual.Creates an XML encoding of the permission and its current state.

Union(IPermission)

Crea un permiso que es la unión del permiso actual y el permiso especificado.Creates a permission that is the union of the current permission and the specified permission.

Implementaciones de interfaz explícitas

IPermission.Demand() (Heredado de CodeAccessPermission)
IStackWalk.Assert() (Heredado de CodeAccessPermission)
IStackWalk.Demand() (Heredado de CodeAccessPermission)
IStackWalk.Deny() (Heredado de CodeAccessPermission)
IStackWalk.PermitOnly() (Heredado de CodeAccessPermission)

Se aplica a

Consulte también: