File.SetAccessControl(String, FileSecurity) メソッド

定義

FileSecurity オブジェクトによって記述されたアクセス制御リスト (ACL) エントリを、指定されたファイルに適用します。

public:
 static void SetAccessControl(System::String ^ path, System::Security::AccessControl::FileSecurity ^ fileSecurity);
public static void SetAccessControl(string path, System.Security.AccessControl.FileSecurity fileSecurity);
static member SetAccessControl : string * System.Security.AccessControl.FileSecurity -> unit
Public Shared Sub SetAccessControl (path As String, fileSecurity As FileSecurity)

パラメーター

path
String

アクセス制御リスト (ACL) エントリを追加または削除するファイル。

fileSecurity
FileSecurity

FileSecurity パラメーターによって記述されたファイルに適用する ACL エントリを記述するpath オブジェクト。

例外

ファイルを開くときに I/O エラーが発生しました。

path パラメーターはnull

ファイルが見つかりませんでした。

path パラメーターは、読み取り専用のファイルを指定しました。

-又は-

この操作は、現在のプラットフォームではサポートされていません。

-又は-

path パラメーターでディレクトリが指定されました。

-又は-

呼び出し元に必要なアクセス許可がありません。

fileSecurity パラメーターはnull

注釈

SetAccessControlメソッドは、アクセス制御リスト (ACL) エントリを、非暗号化 ACL リストを表すファイルに適用します。

Caution

fileSecurity パラメーターに指定された ACL は、ファイルの既存の ACL を置き換えます。 新しいユーザーのアクセス許可を追加するには、 GetAccessControl メソッドを使用して既存の ACL を取得し、それを変更してから、 SetAccessControl を使用してファイルに適用し直します。

ACL は、特定のファイルに対する特定のアクションに対する権限を持っている(または持っていない)個人とグループを表します。 詳細については、「 方法: アクセス制御リスト エントリを追加または削除する」を参照してください。

SetAccessControl メソッドは、オブジェクトの作成後に変更されたFileSecurityオブジェクトのみを保持します。 FileSecurity オブジェクトが変更されていない場合、そのオブジェクトはファイルに永続化されません。 そのため、あるファイルから FileSecurity オブジェクトを取得し、同じオブジェクトを別のファイルに再適用することはできません。

ACL 情報をあるファイルから別のファイルにコピーするには:

  1. GetAccessControl メソッドを使用して、ソース ファイルからFileSecurity オブジェクトを取得します。

  2. コピー先ファイルの新しい FileSecurity オブジェクトを作成します。

  3. ACL 情報を取得するには、ソース GetSecurityDescriptorBinaryForm オブジェクトのGetSecurityDescriptorSddlFormまたはFileSecurityメソッドを使用します。

  4. 手順 3 で取得した情報をコピー先のオブジェクトにコピーするには、 SetSecurityDescriptorBinaryForm または SetSecurityDescriptorSddlForm メソッド FileSecurity 使用します。

  5. FileSecurity メソッドを使用して、コピー先SetAccessControlオブジェクトをコピー先ファイルに設定します。

NTFS 環境では、ユーザーが親フォルダーに対するReadAttributes権限を持っている場合、ReadExtendedAttributesListDirectoryがユーザーに付与されます。 ReadAttributesReadExtendedAttributesを拒否するには、親ディレクトリのListDirectoryを拒否します。

適用対象

こちらもご覧ください