FileIOPermission 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í.
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
- 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. |