Compartir vía


FileIOPermission Clase

Definición

Precaución

Code Access Security is not supported or honored by the runtime.

Controla la capacidad para tener acceso a archivos y carpetas. Esta clase no puede heredarse.

public ref class FileIOPermission sealed : System::Security::CodeAccessPermission, System::Security::Permissions::IUnrestrictedPermission
[System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public sealed class FileIOPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
[System.Serializable]
public sealed class FileIOPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class FileIOPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
public sealed class FileIOPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
[<System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type FileIOPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
[<System.Serializable>]
type FileIOPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type FileIOPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
type FileIOPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
Public NotInheritable Class FileIOPermission
Inherits CodeAccessPermission
Implements IUnrestrictedPermission
Herencia
FileIOPermission
Atributos
Implementaciones

Ejemplos

En los ejemplos siguientes se muestra el código que usa FileIOPermission. Después de las dos líneas de código siguientes, el objeto f representa el permiso para leer todos los archivos en los discos locales del equipo cliente. A continuación, el ejemplo de código exige el permiso para determinar si la aplicación tiene permiso para leer los archivos.

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 objeto f2 representa los permisos para leer C:\test_r y leer y escribir en C:\example\out.txt. Read y Write representan los permisos de archivo o carpeta como se ha descrito anteriormente. Después de crear el permiso, el código exige el permiso para determinar si la aplicación tiene derecho a leer y escribir en el archivo.

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

Precaución

La seguridad de acceso del código (CAS) ha quedado en desuso en todas las versiones de .NET Framework y .NET. Las versiones recientes de .NET no respetan las anotaciones de CAS y generan errores si se usan API relacionadas con CAS. Los desarrolladores deben buscar medios alternativos para realizar tareas de seguridad.

Este permiso distingue entre los cuatro tipos siguientes de acceso de E/S de archivo proporcionado por FileIOPermissionAccess:

  • Read: acceso de lectura al contenido del archivo o acceso a la información sobre el archivo, como su duración o hora de última modificación.

  • Write: acceso de escritura al contenido del archivo o acceso para cambiar información sobre el archivo, como su nombre. También permite la eliminación y sobrescritura.

  • Append: capacidad de escribir solo al final de un archivo. No se puede leer.

  • PathDiscovery: acceso a la información en la propia ruta de acceso. Esto ayuda a proteger la información confidencial en la ruta de acceso, como los nombres de usuario, así como la información sobre la estructura de directorios que se muestra en la ruta de acceso. Este valor no concede acceso a los archivos o las carpetas que representa la ruta de acceso.

Nota

Conceder Write acceso a un ensamblado es similar a concederle plena confianza. Si una aplicación no debe escribir en el sistema de archivos, no debe tener Write acceso.

Todos estos permisos son independientes, lo que significa que los derechos de uno no implican derechos a otro. Por ejemplo, Write el permiso no implica el permiso para Read ni Append. Si se desea más de un permiso, se pueden combinar con un or bit a bit, como se muestra en el ejemplo de código siguiente. 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.

FileIOPermission describe las operaciones protegidas en archivos y carpetas. La File clase ayuda a proporcionar acceso seguro a archivos y carpetas. La comprobación de acceso de seguridad se realiza cuando se crea el identificador del archivo. 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. Abrir un archivo se produce una vez, mientras que la lectura y escritura pueden ocurrir varias veces. Una vez abierto el archivo, no se realizan más comprobaciones. Si el objeto se pasa a un autor de llamada que no es de confianza, se puede usar incorrectamente. 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.

FileIOPermissionAccess especifica las acciones que se pueden realizar en el archivo o carpeta. Además, estas acciones se pueden combinar mediante un or bit a bit para formar instancias complejas.

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. Por ejemplo, Read el acceso a C:\folder1\ implica Read el acceso a C:\folder1\file1.txt, C:\folder1\folder2\, C:\folder1\folder2\file2.txt, etc.

Nota

En las versiones de .NET Framework anteriores a .NET Framework 4, puede usar el CodeAccessPermission.Deny método para evitar el acceso inadvertido a los recursos del sistema mediante código de confianza. Deny ahora está obsoleto y ahora el acceso a los recursos viene determinado únicamente por el conjunto de permisos concedido para un ensamblado. 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 puede acceder. Para obtener información sobre cómo ejecutar una aplicación en un espacio aislado, vea Cómo: Ejecutar código de confianza parcial en un espacio aislado.

Constructores

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String)
Obsoletos.

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.

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String[])
Obsoletos.

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.

FileIOPermission(FileIOPermissionAccess, String)
Obsoletos.

Inicializa una nueva instancia de la clase FileIOPermission con el acceso especificado a los archivos o directorios designados.

FileIOPermission(FileIOPermissionAccess, String[])
Obsoletos.

Inicializa una nueva instancia de la clase FileIOPermission con el acceso especificado a los archivos y directorios designados.

FileIOPermission(PermissionState)
Obsoletos.

Inicializa una nueva instancia de la clase FileIOPermission con permisos totalmente limitados o ilimitados, según se haya especificado.

Propiedades

AllFiles
Obsoletos.

Obtiene o establece el acceso permitido a todos los archivos.

AllLocalFiles
Obsoletos.

Obtiene o establece el acceso permitido a todos los archivos locales.

Métodos

AddPathList(FileIOPermissionAccess, String)
Obsoletos.

Agrega acceso para el archivo o directorio especificado en el estado existente del permiso.

AddPathList(FileIOPermissionAccess, String[])
Obsoletos.

Agrega acceso para los archivos y directorios especificados en el estado existente del permiso.

Assert()
Obsoletos.

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. El uso de Assert() puede crear problemas de seguridad.

(Heredado de CodeAccessPermission)
Copy()
Obsoletos.

Crea y devuelve una copia idéntica del permiso actual.

Demand()
Obsoletos.

Fuerza a un SecurityException en tiempo de ejecución si todos los autores de llamada situados en la parte superior de la pila de llamadas no disponen del permiso especificado por la instancia actual.

(Heredado de CodeAccessPermission)
Deny()
Obsoletos.
Obsoletos.

Impide que los autores de la llamada situados en la posición más alta de la pila de llamadas usen el código que llama a este método para tener acceso al recurso especificado por la instancia actual.

(Heredado de CodeAccessPermission)
Equals(Object)
Obsoletos.

Determina si el objeto FileIOPermission especificado es igual al objeto FileIOPermission actual.

Equals(Object)
Obsoletos.

Determina si el objeto CodeAccessPermission especificado es igual al objeto CodeAccessPermission actual.

(Heredado de CodeAccessPermission)
FromXml(SecurityElement)
Obsoletos.

Reconstruye un permiso con un estado especificado a partir de una codificación XML.

GetHashCode()
Obsoletos.

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.

GetHashCode()
Obsoletos.

Obtiene un código hash para el objeto CodeAccessPermission que es adecuado para su uso en algoritmos hash y estructuras de datos como una tabla hash.

(Heredado de CodeAccessPermission)
GetPathList(FileIOPermissionAccess)
Obsoletos.

Obtiene todos los archivos y directorios con el FileIOPermissionAccess especificado.

GetType()
Obsoletos.

Obtiene el Type de la instancia actual.

(Heredado de Object)
Intersect(IPermission)
Obsoletos.

Crea y devuelve un permiso que es la intersección del permiso actual y el permiso especificado.

IsSubsetOf(IPermission)
Obsoletos.

Determina si el permiso actual es un subconjunto del permiso especificado.

IsUnrestricted()
Obsoletos.

Devuelve un valor que indica si el permiso actual no está restringido.

MemberwiseClone()
Obsoletos.

Crea una copia superficial del Object actual.

(Heredado de Object)
PermitOnly()
Obsoletos.

Impide que los llamadores situados más arriba en la pila de llamadas usen el código que llama a este método para tener acceso a todos los recursos excepto al recurso especificado por la instancia actual.

(Heredado de CodeAccessPermission)
SetPathList(FileIOPermissionAccess, String)
Obsoletos.

Establece el acceso especificado al archivo o directorio especificado, reemplazando el estado existente del permiso.

SetPathList(FileIOPermissionAccess, String[])
Obsoletos.

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.

ToString()
Obsoletos.

Crea y devuelve una representación de cadena del objeto de permiso actual.

(Heredado de CodeAccessPermission)
ToXml()
Obsoletos.

Crea una codificación XML del permiso y su estado actual.

Union(IPermission)
Obsoletos.

Crea un permiso que es la unión del permiso actual y el permiso especificado.

Se aplica a

Consulte también