FileIOPermissionAttribute 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.
Permite aplicar acciones de seguridad para FileIOPermission al código mediante seguridad declarativa. Esta clase no se puede heredar.
public ref class FileIOPermissionAttribute sealed : System::Security::Permissions::CodeAccessSecurityAttribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)]
[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 FileIOPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)]
[System.Serializable]
public sealed class FileIOPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class FileIOPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)]
public sealed class FileIOPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)>]
[<System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type FileIOPermissionAttribute = class
inherit CodeAccessSecurityAttribute
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)>]
[<System.Serializable>]
type FileIOPermissionAttribute = class
inherit CodeAccessSecurityAttribute
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type FileIOPermissionAttribute = class
inherit CodeAccessSecurityAttribute
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)>]
type FileIOPermissionAttribute = class
inherit CodeAccessSecurityAttribute
Public NotInheritable Class FileIOPermissionAttribute
Inherits CodeAccessSecurityAttribute
- Herencia
- Atributos
Ejemplos
En el ejemplo de código siguiente se muestra cómo solicitar FileIOPermission mediante la clase FileIOPermissionAttribute, lo que indica el único permiso que se va a conceder al código.
[FileIOPermissionAttribute(SecurityAction::PermitOnly,ViewAndModify="C:\\example\\sample.txt")]
[FileIOPermissionAttribute(SecurityAction.PermitOnly, ViewAndModify = "C:\\example\\sample.txt")]
<FileIOPermissionAttribute(SecurityAction.PermitOnly, _
ViewAndModify:="C:\example\sample.txt")> Public Class SampleClass
En el ejemplo siguiente se muestra cómo exigir que el código de llamada tenga FileIOPermissionsin restricciones. Normalmente, se realizan demandas en bibliotecas administradas (DLL) para ayudar a proteger métodos o clases del código potencialmente dañino.
[FileIOPermissionAttribute(SecurityAction::Demand,Unrestricted=true)]
[FileIOPermissionAttribute(SecurityAction.Demand, Unrestricted=true)]
<FileIOPermissionAttribute(SecurityAction.Demand, _
Unrestricted := True)> Public Class SampleClass
Comentarios
Cautela
La seguridad de acceso al código (CAS) está en desuso en todas las versiones de .NET Framework y .NET. Las versiones recientes de .NET no respetan las anotaciones cas y producen errores si se usan las API relacionadas con CAS. Los desarrolladores deben buscar medios alternativos para realizar tareas de seguridad.
Los archivos y directorios se especifican mediante rutas de acceso absolutas. Al acceder a los archivos, se realiza una comprobación de seguridad cuando se crea o se abre el archivo. La comprobación de seguridad no se realiza de nuevo a menos que se cierre y vuelva a abrir el archivo. La comprobación de permisos cuando se obtiene acceso al archivo por primera vez minimiza el impacto de la comprobación de seguridad en el rendimiento de la aplicación, ya que la apertura de un archivo solo se produce una vez, mientras que la lectura y escritura pueden producirse varias veces.
El ámbito de la declaración permitida depende del SecurityAction que se usa.
La información de seguridad declarada por un atributo de seguridad se almacena en los metadatos del destino del atributo y el sistema accede a ella en tiempo de ejecución. Los atributos de seguridad solo se usan para la seguridad declarativa. Para la seguridad imperativa, use la clase de permisos correspondiente.
Cautela
Unrestricted
FileIOPermission concede permiso para todas las rutas de acceso dentro de un sistema de archivos, incluidos varios nombres de ruta de acceso que se pueden usar para acceder a un único archivo determinado. Para Deny acceso a un archivo, debe Deny
todas las rutas de acceso posibles al archivo. Por ejemplo, si \\server\share está asignado a la unidad de red X, para Deny
acceso a \\server\share\file, debe Deny
\\server\share\file, X:\file y cualquier otra ruta de acceso que pueda usar para acceder al archivo.
Constructores
FileIOPermissionAttribute(SecurityAction) |
Obsoletos.
Inicializa una nueva instancia de la clase FileIOPermissionAttribute con el SecurityActionespecificado. |
Propiedades
Action |
Obsoletos.
Obtiene o establece una acción de seguridad. (Heredado de SecurityAttribute) |
All |
Obsoletos.
Obsoletos.
Obtiene o establece el acceso total para el archivo o directorio especificado por el valor de cadena. |
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. |
Append |
Obsoletos.
Obtiene o establece el acceso anexado para el archivo o directorio especificado por el valor de cadena. |
ChangeAccessControl |
Obsoletos.
Obtiene o establece el archivo o directorio en el que se puede cambiar la información del control de acceso. |
PathDiscovery |
Obsoletos.
Obtiene o establece el archivo o directorio en el que se va a conceder la detección de rutas de acceso. |
Read |
Obsoletos.
Obtiene o establece el acceso de lectura para el archivo o directorio especificado por el valor de cadena. |
TypeId |
Obsoletos.
Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute. (Heredado de Attribute) |
Unrestricted |
Obsoletos.
Obtiene o establece un valor que indica si se declara el permiso completo (sin restricciones) para el recurso protegido por el atributo. (Heredado de SecurityAttribute) |
ViewAccessControl |
Obsoletos.
Obtiene o establece el archivo o directorio en el que se puede ver la información de control de acceso. |
ViewAndModify |
Obsoletos.
Obtiene o establece el archivo o directorio en el que se pueden ver y modificar los datos del archivo. |
Write |
Obsoletos.
Obtiene o establece el acceso de escritura para el archivo o directorio especificado por el valor de cadena. |
Métodos
CreatePermission() |
Obsoletos.
Crea y devuelve un nuevo FileIOPermission. |
Equals(Object) |
Obsoletos.
Devuelve un valor que indica si esta instancia es igual a un objeto especificado. (Heredado de Attribute) |
GetHashCode() |
Obsoletos.
Devuelve el código hash de esta instancia. (Heredado de Attribute) |
GetType() |
Obsoletos.
Obtiene el Type de la instancia actual. (Heredado de Object) |
IsDefaultAttribute() |
Obsoletos.
Cuando se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada. (Heredado de Attribute) |
Match(Object) |
Obsoletos.
Cuando se reemplaza en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado. (Heredado de Attribute) |
MemberwiseClone() |
Obsoletos.
Crea una copia superficial del Objectactual. (Heredado de Object) |
ToString() |
Obsoletos.
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Implementaciones de interfaz explícitas
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Obsoletos.
Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. (Heredado de Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Obsoletos.
Recupera la información de tipo de un objeto, que se puede usar para obtener la información de tipo de una interfaz. (Heredado de Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Obsoletos.
Recupera el número de interfaces de información de tipo que proporciona un objeto (0 o 1). (Heredado de Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Obsoletos.
Proporciona acceso a propiedades y métodos expuestos por un objeto . (Heredado de Attribute) |