File.GetAccessControl メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定したファイルのアクセス制御リスト (ACL) のエントリをカプセル化する FileSecurity オブジェクトを取得します。
オーバーロード
GetAccessControl(String, AccessControlSections) |
特定のファイルのアクセス制御リスト (ACL) の指定した型のエントリをカプセル化する FileSecurity オブジェクトを取得します。 |
GetAccessControl(String) |
指定したファイルのアクセス制御リスト (ACL) のエントリをカプセル化する FileSecurity オブジェクトを取得します。 |
注釈
メソッドを GetAccessControl 使用して、指定したファイルのアクセス制御リスト (ACL) エントリを取得します。
GetAccessControl(String, AccessControlSections)
特定のファイルのアクセス制御リスト (ACL) の指定した型のエントリをカプセル化する FileSecurity オブジェクトを取得します。
public:
static System::Security::AccessControl::FileSecurity ^ GetAccessControl(System::String ^ path, System::Security::AccessControl::AccessControlSections includeSections);
public static System.Security.AccessControl.FileSecurity GetAccessControl (string path, System.Security.AccessControl.AccessControlSections includeSections);
static member GetAccessControl : string * System.Security.AccessControl.AccessControlSections -> System.Security.AccessControl.FileSecurity
Public Shared Function GetAccessControl (path As String, includeSections As AccessControlSections) As FileSecurity
パラメーター
- path
- String
ファイルのアクセス制御リスト (ACL) の情報を記述する FileSecurity オブジェクトを格納するファイルへのパス。
- includeSections
- AccessControlSections
取得するアクセス制御リスト (ACL) の情報の型を指定する AccessControlSections 値のいずれか。
戻り値
path
パラメーターによって記述されるファイルのアクセス制御規則をカプセル化する FileSecurity オブジェクト。
例外
ファイルを開くときに、I/O エラーが発生しました。
path
パラメーターが null
です。
ファイルが見つかりませんでした。
path
パラメーターに読み取り専用のファイルが指定されています。
- または -
この操作は、現在のプラットフォームではサポートされていません。
- または -
path
パラメーターにディレクトリが指定されています。
- または -
呼び出し元に、必要なアクセス許可がありません。
注釈
メソッドを GetAccessControl 使用して、ファイルのアクセス制御リスト (ACL) エントリを取得します。
ACL は、特定のファイルに対する特定のアクションに対する権限を持っている、または持たない個人やグループを記述します。 詳細については、「方法: アクセス制御リスト エントリを追加または削除する」を参照してください。
NTFS 環境では、 と ReadExtendedAttributes は、ReadAttributesユーザーが親フォルダーに対する権限を持っているListDirectory場合にユーザーに付与されます。 と ReadExtendedAttributesを拒否ReadAttributesするには、親ディレクトリで deny ListDirectory を実行します。
適用対象
GetAccessControl(String)
指定したファイルのアクセス制御リスト (ACL) のエントリをカプセル化する FileSecurity オブジェクトを取得します。
public:
static System::Security::AccessControl::FileSecurity ^ GetAccessControl(System::String ^ path);
public static System.Security.AccessControl.FileSecurity GetAccessControl (string path);
static member GetAccessControl : string -> System.Security.AccessControl.FileSecurity
Public Shared Function GetAccessControl (path As String) As FileSecurity
パラメーター
- path
- String
ファイルのアクセス制御リスト (ACL) の情報を記述する FileSecurity オブジェクトを格納するファイルへのパス。
戻り値
path
パラメーターによって記述されるファイルのアクセス制御規則をカプセル化する FileSecurity オブジェクト。
例外
ファイルを開くときに、I/O エラーが発生しました。
path
パラメーターが null
です。
ファイルが見つかりませんでした。
path
パラメーターに読み取り専用のファイルが指定されています。
- または -
この操作は、現在のプラットフォームではサポートされていません。
- または -
path
パラメーターにディレクトリが指定されています。
- または -
呼び出し元に、必要なアクセス許可がありません。
例
次のコード例では、 GetAccessControl メソッドと メソッドを SetAccessControl 使用して、ファイルからアクセス制御リスト (ACL) エントリを追加および削除します。 この例を実行するには、有効なユーザーまたはグループ アカウントを指定する必要があります。
using namespace System;
using namespace System::IO;
using namespace System::Security::AccessControl;
// Adds an ACL entry on the specified file for the specified account.
void AddFileSecurity(String^ fileName, String^ account,
FileSystemRights rights, AccessControlType controlType)
{
// Get a FileSecurity object that represents the
// current security settings.
FileSecurity^ fSecurity = File::GetAccessControl(fileName);
// Add the FileSystemAccessRule to the security settings.
fSecurity->AddAccessRule(gcnew FileSystemAccessRule
(account,rights, controlType));
// Set the new access settings.
File::SetAccessControl(fileName, fSecurity);
}
// Removes an ACL entry on the specified file for the specified account.
void RemoveFileSecurity(String^ fileName, String^ account,
FileSystemRights rights, AccessControlType controlType)
{
// Get a FileSecurity object that represents the
// current security settings.
FileSecurity^ fSecurity = File::GetAccessControl(fileName);
// Remove the FileSystemAccessRule from the security settings.
fSecurity->RemoveAccessRule(gcnew FileSystemAccessRule
(account,rights, controlType));
// Set the new access settings.
File::SetAccessControl(fileName, fSecurity);
}
int main()
{
try
{
String^ fileName = "test.xml";
Console::WriteLine("Adding access control entry for " + fileName);
// Add the access control entry to the file.
AddFileSecurity(fileName, "MYDOMAIN\\MyAccount",
FileSystemRights::ReadData, AccessControlType::Allow);
Console::WriteLine("Removing access control entry from " + fileName);
// Remove the access control entry from the file.
RemoveFileSecurity(fileName, "MYDOMAIN\\MyAccount",
FileSystemRights::ReadData, AccessControlType::Allow);
Console::WriteLine("Done.");
}
catch (Exception^ ex)
{
Console::WriteLine(ex->Message);
}
}
using System;
using System.IO;
using System.Security.AccessControl;
namespace FileSystemExample
{
class FileExample
{
public static void Main()
{
try
{
string fileName = "test.xml";
Console.WriteLine("Adding access control entry for "
+ fileName);
// Add the access control entry to the file.
AddFileSecurity(fileName, @"DomainName\AccountName",
FileSystemRights.ReadData, AccessControlType.Allow);
Console.WriteLine("Removing access control entry from "
+ fileName);
// Remove the access control entry from the file.
RemoveFileSecurity(fileName, @"DomainName\AccountName",
FileSystemRights.ReadData, AccessControlType.Allow);
Console.WriteLine("Done.");
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
// Adds an ACL entry on the specified file for the specified account.
public static void AddFileSecurity(string fileName, string account,
FileSystemRights rights, AccessControlType controlType)
{
// Get a FileSecurity object that represents the
// current security settings.
FileSecurity fSecurity = File.GetAccessControl(fileName);
// Add the FileSystemAccessRule to the security settings.
fSecurity.AddAccessRule(new FileSystemAccessRule(account,
rights, controlType));
// Set the new access settings.
File.SetAccessControl(fileName, fSecurity);
}
// Removes an ACL entry on the specified file for the specified account.
public static void RemoveFileSecurity(string fileName, string account,
FileSystemRights rights, AccessControlType controlType)
{
// Get a FileSecurity object that represents the
// current security settings.
FileSecurity fSecurity = File.GetAccessControl(fileName);
// Remove the FileSystemAccessRule from the security settings.
fSecurity.RemoveAccessRule(new FileSystemAccessRule(account,
rights, controlType));
// Set the new access settings.
File.SetAccessControl(fileName, fSecurity);
}
}
}
open System.IO
open System.Security.AccessControl
// Adds an ACL entry on the specified file for the specified account.
let addFileSecurity fileName (account: string) rights controlType =
// Get a FileSecurity object that represents the
// current security settings.
let fSecurity = File.GetAccessControl fileName
// Add the FileSystemAccessRule to the security settings.
FileSystemAccessRule(account, rights, controlType)
|> fSecurity.AddAccessRule
// Set the new access settings.
File.SetAccessControl(fileName, fSecurity)
// Removes an ACL entry on the specified file for the specified account.
let removeFileSecurity fileName (account: string) rights controlType =
// Get a FileSecurity object that represents the
// current security settings.
let fSecurity = File.GetAccessControl fileName
// Remove the FileSystemAccessRule from the security settings.
fSecurity.RemoveAccessRule(FileSystemAccessRule(account, rights, controlType))
|> ignore
// Set the new access settings.
File.SetAccessControl(fileName, fSecurity)
let fileName = "test.xml"
printfn $"Adding access control entry for {fileName}"
// Add the access control entry to the file.
addFileSecurity fileName @"DomainName\AccountName" FileSystemRights.ReadData AccessControlType.Allow
printfn $"Removing access control entry from {fileName}"
// Remove the access control entry from the file.
removeFileSecurity fileName @"DomainName\AccountName" FileSystemRights.ReadData AccessControlType.Allow
printfn "Done."
Imports System.IO
Imports System.Security.AccessControl
Module FileExample
Sub Main()
Try
Dim fileName As String = "test.xml"
Console.WriteLine("Adding access control entry for " & fileName)
' Add the access control entry to the file.
AddFileSecurity(fileName, "DomainName\AccountName", _
FileSystemRights.ReadData, AccessControlType.Allow)
Console.WriteLine("Removing access control entry from " & fileName)
' Remove the access control entry from the file.
RemoveFileSecurity(fileName, "DomainName\AccountName", _
FileSystemRights.ReadData, AccessControlType.Allow)
Console.WriteLine("Done.")
Catch e As Exception
Console.WriteLine(e)
End Try
End Sub
' Adds an ACL entry on the specified file for the specified account.
Sub AddFileSecurity(ByVal fileName As String, ByVal account As String, _
ByVal rights As FileSystemRights, ByVal controlType As AccessControlType)
' Get a FileSecurity object that represents the
' current security settings.
Dim fSecurity As FileSecurity = File.GetAccessControl(fileName)
' Add the FileSystemAccessRule to the security settings.
Dim accessRule As FileSystemAccessRule = _
New FileSystemAccessRule(account, rights, controlType)
fSecurity.AddAccessRule(accessRule)
' Set the new access settings.
File.SetAccessControl(fileName, fSecurity)
End Sub
' Removes an ACL entry on the specified file for the specified account.
Sub RemoveFileSecurity(ByVal fileName As String, ByVal account As String, _
ByVal rights As FileSystemRights, ByVal controlType As AccessControlType)
' Get a FileSecurity object that represents the
' current security settings.
Dim fSecurity As FileSecurity = File.GetAccessControl(fileName)
' Remove the FileSystemAccessRule from the security settings.
fSecurity.RemoveAccessRule(New FileSystemAccessRule(account, _
rights, controlType))
' Set the new access settings.
File.SetAccessControl(fileName, fSecurity)
End Sub
End Module
注釈
メソッドを GetAccessControl 使用して、ファイルのアクセス制御リスト (ACL) エントリを取得します。
ACL は、特定のファイルに対する特定のアクションに対する権限を持っている、または持たない個人やグループを記述します。 詳細については、「方法: アクセス制御リスト エントリを追加または削除する」を参照してください。
NTFS 環境では、 と ReadExtendedAttributes は、ReadAttributesユーザーが親フォルダーに対する権限を持っているListDirectory場合にユーザーに付与されます。 と ReadExtendedAttributesを拒否ReadAttributesするには、親ディレクトリで deny ListDirectory を実行します。
適用対象
.NET
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示