Share via


FileIOPermissionAttribute 类

允许对使用声明安全性应用到代码中的 FileIOPermission 进行安全操作。无法继承此类。

**命名空间:**System.Security.Permissions
**程序集:**mscorlib(在 mscorlib.dll 中)

语法

声明
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
<AttributeUsageAttribute(AttributeTargets.Assembly Or AttributeTargets.Class Or AttributeTargets.Struct Or AttributeTargets.Constructor Or AttributeTargets.Method, AllowMultiple:=True, Inherited:=False)> _
Public NotInheritable Class FileIOPermissionAttribute
    Inherits CodeAccessSecurityAttribute
用法
Dim instance As FileIOPermissionAttribute
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
[AttributeUsageAttribute(AttributeTargets.Assembly|AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Constructor|AttributeTargets.Method, AllowMultiple=true, Inherited=false)] 
public sealed class FileIOPermissionAttribute : CodeAccessSecurityAttribute
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
[AttributeUsageAttribute(AttributeTargets::Assembly|AttributeTargets::Class|AttributeTargets::Struct|AttributeTargets::Constructor|AttributeTargets::Method, AllowMultiple=true, Inherited=false)] 
public ref class FileIOPermissionAttribute sealed : public CodeAccessSecurityAttribute
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
/** @attribute AttributeUsageAttribute(AttributeTargets.Assembly|AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Constructor|AttributeTargets.Method, AllowMultiple=true, Inherited=false) */ 
public final class FileIOPermissionAttribute extends CodeAccessSecurityAttribute
SerializableAttribute 
ComVisibleAttribute(true) 
AttributeUsageAttribute(AttributeTargets.Assembly|AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Constructor|AttributeTargets.Method, AllowMultiple=true, Inherited=false) 
public final class FileIOPermissionAttribute extends CodeAccessSecurityAttribute

备注

使用绝对路径指定文件和目录。当访问文件时,在创建或打开文件时执行安全检查。安全检查不会再次执行,除非文件被关闭然后重新打开。首次访问文件时检查权限将安全检查对应用程序性能的影响降到最低程度,这是因为打开文件只发生一次,而读和写可发生多次。

允许的声明范围取决于使用的 SecurityAction

安全属性所声明的安全信息存储在属性目标的元数据中,系统在运行时会访问这些信息。安全属性仅用于声明性安全。对于强制性安全,应使用相应的权限类。

警告

Unrestricted FileIOPermission 授予对文件系统内所有路径的权限,包括可用于访问单个给定文件的多个路径名。若要 Deny 对文件的访问,必须 Deny 该文件所有可能的路径。例如,如果在将 \\server\share 映射到网络驱动器 X 后,要 Deny 对 \\server\share\file 的访问,则必须 Deny \\server\share\file、X:\file 以及可用于访问该文件的所有其他路径。

示例

下面的声明性属性示例显示请求 FileIOPermission 以获得对指定文件的完全访问权限的正确方法,并声明您必须至少拥有此权限方可运行代码。

 <Assembly: FileIOPermissionAttribute(SecurityAction.RequestMinimum, _
 All := "C:\example\sample.txt")>
'In Visual Basic, you must specify that you are using the assembly scope when making a request.
[assembly:FileIOPermissionAttribute(SecurityAction.RequestMinimum, All="C:\\example\\sample.txt")]
//In C#, you must specify that you are using the assembly scope when making a request.
[assembly:FileIOPermissionAttribute(SecurityAction::RequestMinimum,All="C:\\example\\sample.txt")];
//In C++, you must specify that you are using the assembly scope when making a request.
/** @assembly FileIOPermissionAttribute(SecurityAction.RequestMinimum,
    All = "C:\\example\\sample.txt")
 */
// In VJ#, you must specify that you are using the assembly scope 
// when making a request.

下面的示例显示如何要求调用代码在链接时拥有无限制的 FileIOPermission。通常在托管库 (DLL) 中发出请求,以帮助保护方法或类不受潜在的有害代码的影响。

<FileIOPermissionAttribute(SecurityAction.Demand, _
 Unrestricted := True)> Public Class SampleClass
[FileIOPermissionAttribute(SecurityAction.Demand, Unrestricted=true)]
[FileIOPermissionAttribute(SecurityAction::Demand,Unrestricted=true)]
/** @attribute FileIOPermissionAttribute(SecurityAction.Demand,
    Unrestricted = true)
 */

继承层次结构

System.Object
   System.Attribute
     System.Security.Permissions.SecurityAttribute
       System.Security.Permissions.CodeAccessSecurityAttribute
        System.Security.Permissions.FileIOPermissionAttribute

线程安全

此类型的任何公共静态(Visual Basic 中的 Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。

平台

Windows 98、Windows 2000 SP4、Windows Millennium Edition、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

请参见

参考

FileIOPermissionAttribute 成员
System.Security.Permissions 命名空间
FileIOPermission 类
FileIOPermissionAccess 枚举

其他资源

利用属性扩展元数据