FileIOPermissionAttribute クラス

宣言セキュリティを使用して、 FileIOPermission のセキュリティ アクションをコードに適用できるようにします。このクラスは継承できません。

この型のすべてのメンバの一覧については、FileIOPermissionAttribute メンバ を参照してください。

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

<AttributeUsage(AttributeTargets.Assembly Or AttributeTargets.Class _
   Or AttributeTargets.Struct Or AttributeTargets.Constructor Or _
   AttributeTargets.Method)>
<Serializable>
NotInheritable Public Class FileIOPermissionAttribute   Inherits CodeAccessSecurityAttribute
[C#]
[AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class
   | AttributeTargets.Struct | AttributeTargets.Constructor |
   AttributeTargets.Method)]
[Serializable]
public sealed class FileIOPermissionAttribute :   CodeAccessSecurityAttribute
[C++]
[AttributeUsage(AttributeTargets::Assembly |
   AttributeTargets::Class | AttributeTargets::Struct |
   AttributeTargets::Constructor | AttributeTargets::Method)]
[Serializable]
public __gc __sealed class FileIOPermissionAttribute : public   CodeAccessSecurityAttribute
[JScript]
public
   AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class |
   AttributeTargets.Struct | AttributeTargets.Constructor |
   AttributeTargets.Method)
 Serializable
class FileIOPermissionAttribute extends   CodeAccessSecurityAttribute

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

ファイルおよびディレクトリは、絶対パスを使用して指定されます。ファイルにアクセスする場合は、ファイルを作成または開くときに、セキュリティ チェックが実行されます。ファイルを閉じて再度開かない限り、セキュリティ チェックが再び行われることはありません。ファイルに最初にアクセスしたときにアクセス許可を確認することによって、セキュリティ チェックがアプリケーションのパフォーマンスに与える影響を最小限にします。これは、ファイルを開く回数は 1 回だけですが、読み取りと書き込みは複数回行うことができるためです。

宣言の許容スコープは、使用する SecurityAction によって異なります。

セキュリティ属性によって宣言されたセキュリティ情報は、属性ターゲットのメタデータに格納され、実行時にシステムによってアクセスされます。セキュリティ属性は宣言セキュリティにだけ使用されます。強制セキュリティの場合は、対応するアクセス許可クラスを使用します。

注意    Unrestricted FileIOPermission は、1 つのファイルにアクセスするための複数のパス名も含め、ファイル システム内のすべてのパスに対するアクセス許可を与えます。ファイルへのアクセスを Deny するには、そのファイルへの有効なパスをすべて Deny する必要があります。たとえば、\\server\share をネットワーク ドライブ X に割り当てた場合、\\server\share\file へのアクセスを Deny によって拒否するには、そのファイルにアクセスするために使用できる \\server\share\file、X:\file などのパスをすべて Deny によって拒否する必要があります。

使用例

[Visual Basic, C#, C++] 指定したファイルへのフル アクセスのための 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.

[C#] 
[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.

[C++] 
[assembly:FileIOPermissionAttribute(SecurityAction::RequestMinimum, All=S"C:\\example\\sample.txt")];
//In C++, you must specify that you are using the assembly scope when making a request.

[Visual Basic, C#, C++] リンク時に、呼び出し元のコードに無制限の FileIOPermission を含めることを要求する方法を次の例に示します。通常、メソッドやクラスを不正の可能性があるコードから保護するための要求をマネージ ライブラリ (DLL) で作成します。

 
<FileIOPermissionAttribute(SecurityAction.Demand, _
 Unrestricted := True)> Public Class SampleClass

[C#] 
[FileIOPermissionAttribute(SecurityAction.Demand, Unrestricted=true)]

[C++] 
[FileIOPermissionAttribute(SecurityAction::Demand, Unrestricted=true)]

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Security.Permissions

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: Mscorlib (Mscorlib.dll 内)

参照

FileIOPermissionAttribute メンバ | System.Security.Permissions 名前空間 | 属性を使用したメタデータの拡張 | FileIOPermission | FileIOPermissionAccess