FileIOPermission クラス

定義

注意事項

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

ファイルとフォルダーにアクセスする機能を制御します。 このクラスは継承できません。

public ref class FileIOPermission sealed : 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}")]
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
type FileIOPermission = class
    inherit CodeAccessPermission
    interface 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
Public NotInheritable Class FileIOPermission
Inherits CodeAccessPermission
Implements IUnrestrictedPermission
継承
FileIOPermission
属性
実装

次の例は、 を使用 FileIOPermissionするコードを示しています。 次の 2 行のコードの後、オブジェクト f はクライアント コンピューターのローカル ディスク上のすべてのファイルを読み取るアクセス許可を表します。 次に、このコード例では、アプリケーションにファイルを読み取るアクセス許可があるかどうかを判断するアクセス許可を要求します。

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

次の 2 行のコードの後、オブジェクト f2 は C:\test_r を読み取り、C:\example\out.txt に対して読み取りと書き込みを行うアクセス許可を表します。 ReadWrite は、前に説明したようにファイル/フォルダーのアクセス許可を表します。 アクセス許可を作成した後、コードは、アプリケーションがファイルの読み取りと書き込みを行う権限を持っているかどうかを判断するアクセス許可を要求します。

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

注釈

注意事項

コード アクセス セキュリティ (CAS) は、.NET Framework と .NET のすべてのバージョンで非推奨になりました。 最近のバージョンの .NET では、CAS 関連の API が使われている場合、CAS の注釈は使われず、エラーが発生します。 開発者は、代わりの手段を見つけてセキュリティ タスクを実現する必要があります。

このアクセス許可は、 によって提供される次の 4 種類のファイル IO アクセスを FileIOPermissionAccess区別します。

  • Read: ファイルの内容への読み取りアクセス、またはファイルに関する情報 (長さ、最終変更時刻など) へのアクセス。

  • Write: ファイルの内容への書き込みアクセス、またはファイルに関する変更情報 (名前など) へのアクセス。 また、削除と上書きも可能です。

  • Append: ファイルの末尾にのみ書き込む機能。 読み取る機能がありません。

  • PathDiscovery: パス自体の情報にアクセスします。 これにより、パス内の機密情報 (ユーザー名など) と、パスで表示されるディレクトリ構造に関する情報を保護できます。 この値は、パスによって表されたファイルまたはフォルダーへのアクセスを与えません。

注意

アセンブリへのアクセス権を付与 Write することは、アセンブリに完全な信頼を付与するのと似ています。 アプリケーションがファイル システムに書き込まない場合は、アクセスできません Write

これらのアクセス許可はすべて独立しています。つまり、あるアクセス許可は別の権限を意味しません。 たとえば、Writeアクセス許可は または Appendへのアクセス許可をRead意味しません。 複数のアクセス許可が必要な場合は、次のコード例に示すように、ビットごとの OR を使用してそれらを組み合わせることができます。 ファイルのアクセス許可は、正規の絶対パスの観点から定義されます。呼び出しは常に正規のファイル パスで行う必要があります。

FileIOPermission では、ファイルとフォルダーに対する保護された操作について説明します。 クラスは File 、ファイルとフォルダーへの安全なアクセスを提供するのに役立ちます。 セキュリティ アクセス チェックは、ファイルへのハンドルが作成されるときに実行されます。 作成時にチェックを行うことで、セキュリティ チェックのパフォーマンスへの影響が最小限に抑えられます。 ファイルを開くことは 1 回行われますが、読み取りと書き込みは複数回発生する可能性があります。 ファイルを開くと、それ以上のチェックは行われません。 オブジェクトが信頼されていない呼び出し元に渡されると、誤用される可能性があります。 たとえば、ファイル ハンドルは、アクセス許可の低いコードがアクセスできるパブリック グローバル 静的に格納しないでください。

FileIOPermissionAccess は、ファイルまたはフォルダーに対して実行できるアクションを指定します。 さらに、これらのアクションは、ビットごとの OR を使用して組み合わせて複雑なインスタンスを形成できます。

フォルダーへのアクセスは、フォルダーに含まれるすべてのファイルへのアクセスと、そのサブフォルダー内のすべてのファイルとフォルダーへのアクセスを意味します。 たとえば、 Read C:\folder1\ へのアクセスは、C:\folder1\file1.txt、C:\folder1\folder2\、C:\folder1\folder2\file2.txt などにアクセスすることを意味 Read します。

注意

.NET Framework 4 より前のバージョンの.NET Frameworkでは、 メソッドをCodeAccessPermission.Deny使用して、信頼されたコードによるシステム リソースへの不注意なアクセスを防ぐことができます。 Deny は廃止され、リソースへのアクセスは、アセンブリに付与されたアクセス許可セットによってのみ決定されるようになりました。 ファイルへのアクセスを制限するには、サンドボックスで部分的に信頼されたコードを実行し、コードがアクセスを許可されているリソースにのみアクセス許可を割り当てる必要があります。 アプリケーションをサンドボックス内で実行する方法の詳細については、「方法: サンドボックスで部分信頼コードを実行する」をご覧ください。

コンストラクター

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String)
古い.

指定されたファイルまたはディレクトリへの指定のアクセスと、ファイル制御情報への指定のアクセス権を使用して、FileIOPermission クラスの新しいインスタンスを初期化します。

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String[])
古い.

指定されたファイルとディレクトリへの指定のアクセスと、ファイル制御情報への指定のアクセス権を使用して、FileIOPermission クラスの新しいインスタンスを初期化します。

FileIOPermission(FileIOPermissionAccess, String)
古い.

指定されたファイルまたはディレクトリに対する指定されたアクセスにより、FileIOPermission クラスの新しいインスタンスを初期化します。

FileIOPermission(FileIOPermissionAccess, String[])
古い.

指定されたファイルおよびディレクトリに対する指定されたアクセスにより、FileIOPermission クラスの新しいインスタンスを初期化します。

FileIOPermission(PermissionState)
古い.

指定に従って完全に制限されているか、または無制限のアクセス許可を持つ、FileIOPermission クラスの新しいインスタンスを初期化します。

プロパティ

AllFiles
古い.

すべてのファイルへの許可されたアクセスを取得または設定します。

AllLocalFiles
古い.

すべてのローカル ファイルへの許可されたアクセスを取得または設定します。

メソッド

AddPathList(FileIOPermissionAccess, String)
古い.

指定したファイルまたはディレクトリに対するアクセス権を、既存のアクセス許可の状態に追加します。

AddPathList(FileIOPermissionAccess, String[])
古い.

指定したファイルおよびディレクトリに対するアクセス権を、既存のアクセス許可の状態に追加します。

Assert()
古い.

呼び出し側コードが、このメソッドを呼び出すコードを通じて、アクセス許可要求によって保護されているリソースにアクセス可能であるということ、それも、スタックの中で上位に位置する呼び出し側にリソースへのアクセス許可が付与されていない場合でさえそれが可能であることを宣言します。 Assert() を使用すると、セキュリティ上の問題が発生することがあります。

(継承元 CodeAccessPermission)
Copy()
古い.

現在のアクセス許可の同一のコピーを作成して返します。

Demand()
古い.

呼び出し履歴の上位にあるすべての呼び出し元に、現在のインスタンスによって指定されているアクセス許可が付与されていない場合、実行時に SecurityException を強制します。

(継承元 CodeAccessPermission)
Deny()
古い.
古い.

呼び出し履歴内の上位の呼び出し元が、このメソッドを呼び出すコードを使用して、現在のインスタンスで指定されたリソースにアクセスしないようにします。

(継承元 CodeAccessPermission)
Equals(Object)
古い.

指定した FileIOPermission オブジェクトが、現在の FileIOPermission と等しいかどうかを判断します。

Equals(Object)
古い.

指定した CodeAccessPermission オブジェクトが、現在の CodeAccessPermission と等しいかどうかを判断します。

(継承元 CodeAccessPermission)
FromXml(SecurityElement)
古い.

XML エンコードから指定された状態で、アクセス許可を再構築します。

GetHashCode()
古い.

ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適している、FileIOPermission オブジェクトのハッシュ コードを取得します。

GetHashCode()
古い.

ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適している、CodeAccessPermission オブジェクトのハッシュ コードを取得します。

(継承元 CodeAccessPermission)
GetPathList(FileIOPermissionAccess)
古い.

指定した FileIOPermissionAccess を含むすべてのファイルとディレクトリを取得します。

GetType()
古い.

現在のインスタンスの Type を取得します。

(継承元 Object)
Intersect(IPermission)
古い.

現在のアクセス許可と指定したアクセス許可の積集合となるアクセス許可を作成して返します。

IsSubsetOf(IPermission)
古い.

現在のアクセス許可が、指定したアクセス許可のサブセットであるかどうかを判断します。

IsUnrestricted()
古い.

現在のアクセス許可が無制限かどうかを示す値を返します。

MemberwiseClone()
古い.

現在の Object の簡易コピーを作成します。

(継承元 Object)
PermitOnly()
古い.

呼び出し履歴内の上位の呼び出し元が、このメソッドを呼び出すコードでは一切リソースにアクセスできないようにします。ただし、現在のインスタンスで指定されているリソースは例外です。

(継承元 CodeAccessPermission)
SetPathList(FileIOPermissionAccess, String)
古い.

指定したアクセスを指定したファイルまたはディレクトリに設定し、既存のアクセス許可の状態を置き換えます。

SetPathList(FileIOPermissionAccess, String[])
古い.

指定したアクセスを指定したファイルとディレクトリに設定し、指定したアクセスの現在の状態を新しいパスのセットで置き換えます。

ToString()
古い.

現在のアクセス許可オブジェクトの文字列形式を作成して返します。

(継承元 CodeAccessPermission)
ToXml()
古い.

アクセス許可とその現在の状態の XML エンコードを作成します。

Union(IPermission)
古い.

現在のアクセス許可と指定されたアクセス許可の和集合であるアクセス許可を作成します。

適用対象

こちらもご覧ください