ACL 技術のシナリオ
System.Security.AccessControl 名前空間のクラスを使用すると、保護されたリソースに関連付けられている随意アクセス制御リスト (DACL: Discretionary Access Control List) およびシステム アクセス制御リスト (SACL: System Access Control List) をプログラムで作成または変更できます。
ここでは、リソース作成時に規則を設定し、既存のリソースの規則をプログラムで変更するという、最も一般的なアクセス制御シナリオと監査シナリオについて説明します。
シナリオ 1: 新しいファイルまたはディレクトリのアクセス規則または監査規則の作成
アプリケーションで新しいファイルやフォルダーを作成する必要が生じる場合があります。 このシナリオでは、マネージ ACL クラスを使用して新しいファイルまたはフォルダーの ACL を指定する方法について説明します。
シナリオの要点
次のタスクを実行するアプリケーションを作成します。
適用する規則を表す 1 つ以上の FileSystemAccessRule オブジェクトまたは FileSystemAuditRule オブジェクトを作成します。
FileSystemAccessRule オブジェクトまたは FileSystemAuditRule オブジェクトを新しい FileSecurity オブジェクトまたは DirectorySecurity オブジェクトに追加します。
FileSecurity オブジェクトまたは DirectorySecurity オブジェクトを適切なメソッドまたはコンストラクターに渡すことによって、新しいファイルまたはフォルダーを作成します。 ファイルやディレクトリの作成メソッドまたは作成コンストラクターはすべて、ファイル セキュリティ パラメーターを受け取るオーバーロードを持ちます。 たとえば、作成時に ACL を設定するために、File.Create メソッド、Directory.CreateDirectory メソッド、FileStream.FileStream メソッドなどを使用できます。
シナリオ 2: 既存のファイルまたはディレクトリのアクセス規則または監査規則の変更
既存のファイルまたはフォルダーの ACL をプログラムで変更する必要が生じる場合があります。 このシナリオでは、マネージ ACL クラスを使用して既存のファイルまたはフォルダーの ACL を変更する方法について説明します。
シナリオの要点
次のタスクを実行するアプリケーションを作成します。
GetAccessControl メソッドまたは GetAccessControl メソッドを使用して、既存のファイルまたはフォルダーから FileSecurity オブジェクトまたは DirectorySecurity オブジェクトを取得します。
適用する規則を表す 1 つ以上の FileSystemAccessRule オブジェクトまたは FileSystemAuditRule オブジェクトを作成します。
FileSystemAccessRule オブジェクトまたは FileSystemAuditRule オブジェクトを FileSecurity オブジェクトまたは DirectorySecurity オブジェクトに追加します。
SetAccessControl メソッドまたは GetAccessControl メソッドを使用して、FileSecurity オブジェクトまたは DirectorySecurity オブジェクトを永続化します。