FileSystemSecurity クラス
アセンブリ: mscorlib (mscorlib.dll 内)


FileSystemSecurity クラスは、FileSecurity クラスと DirectorySecurity クラスの基本クラスです。これらのクラスは、システム ファイルまたはディレクトリのすべてのアクセス権を表し、アクセス試行を監査する方法を定義します。
FileSystemSecurity クラスは、一連の規則としてアクセス権と監査権限を表します。各アクセス規則は FileSystemAccessRule オブジェクトによって表され、各監査規則は FileSystemAuditRule オブジェクトによって表されます。
FileSystemSecurity クラスは、基になる Microsoft Windows ファイル セキュリティ システムを抽象化したクラスです。このシステムでは、各ファイルまたはディレクトリには、そのファイルまたはディレクトリへのアクセスを制御する随意アクセス制御リスト (DACL: Discretionary Access Control List) と、監査対象のアクセス制御試行を指定するシステム アクセス制御リスト (SACL: System Access Control List) があります。FileSystemAccessRule クラスと FileSystemAuditRule クラスは、DACL と SACL を構成するアクセス制御エントリ (ACE: Access Control Entry) を抽象化したクラスです。
FileSystemSecurity クラスは、DACL と SACL の詳細の多くを隠します。したがって、ACE の順序や null DACL を気にかける必要はありません。
新規または変更済みのアクセス制御リスト (ACL) 情報をファイルに保持するには、SetAccessControl メソッドまたは SetAccessControl メソッドを使用します。新規または変更済みの ACL 情報をディレクトリに保持するには、SetAccessControl メソッドまたは SetAccessControl メソッドを使用します。
ファイルから ACL 情報を取得するには、GetAccessControl メソッドまたは GetAccessControl メソッドを使用します。ディレクトリから ACL 情報を取得するには、GetAccessControl メソッドまたは GetAccessControl メソッドを使用します。

FileSecurity クラスを使用して、アクセス制御リスト (ACL: Access Control List) のエントリを追加した後、そのエントリをファイルから削除するコード例を次に示します。この例を実行するには、有効なユーザー アカウントまたはグループ アカウントを指定する必要があります。
Imports System 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) ' Add the FileSystemAccessRule to the security settings. fSecurity.RemoveAccessRule(New FileSystemAccessRule(account, _ rights, controlType)) ' Set the new access settings. File.SetAccessControl(fileName, fSecurity) End Sub End Module
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); // Add the FileSystemAccessRule to the security settings. fSecurity.RemoveAccessRule(new FileSystemAccessRule(account , rights, controlType)); // Set the new access settings. File.SetAccessControl(fileName, fSecurity); } } }
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 to 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); } }

System.Security.AccessControl.ObjectSecurity
System.Security.AccessControl.CommonObjectSecurity
System.Security.AccessControl.NativeObjectSecurity
System.Security.AccessControl.FileSystemSecurity
System.Security.AccessControl.DirectorySecurity
System.Security.AccessControl.FileSecurity


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


FileSystemSecurity プロパティ

名前 | 説明 | |
---|---|---|
![]() | AccessRightType | オーバーライドされます。 FileSystemSecurity クラスでアクセス権を表すために使用する列挙体を取得します。 |
![]() | AccessRuleType | オーバーライドされます。 FileSystemSecurity クラスでアクセス規則を表すために使用する列挙体を取得します。 |
![]() | AreAccessRulesCanonical | この ObjectSecurity オブジェクトに関連付けられたアクセス規則の順序が標準であるかどうかを指定するブール値を取得します。 ( ObjectSecurity から継承されます。) |
![]() | AreAccessRulesProtected | この ObjectSecurity オブジェクトに関連付けられた随意アクセス制御リスト (DACL: Discretionary Access Control List) が保護されているかどうかを指定するブール値を取得します。 ( ObjectSecurity から継承されます。) |
![]() | AreAuditRulesCanonical | この ObjectSecurity オブジェクトに関連付けられた監査規則の順序が標準であるかどうかを指定するブール値を取得します。 ( ObjectSecurity から継承されます。) |
![]() | AreAuditRulesProtected | この ObjectSecurity オブジェクトに関連付けられたシステム アクセス制御リスト (SACL: System Access Control List) が保護されているかどうかを指定するブール値を取得します。 ( ObjectSecurity から継承されます。) |
![]() | AuditRuleType | オーバーライドされます。 FileSystemSecurity クラスで監査規則を表すために使用する型を取得します。 |

名前 | 説明 | |
---|---|---|
![]() | AccessRulesModified | この ObjectSecurity オブジェクトに関連付けられたアクセス規則が変更されているかどうかを指定するブール値を取得または設定します。 ( ObjectSecurity から継承されます。) |
![]() | AuditRulesModified | この ObjectSecurity オブジェクトに関連付けられた監査規則が変更されているかどうかを指定するブール値を取得または設定します。 ( ObjectSecurity から継承されます。) |
![]() | GroupModified | セキュリティ設定できるオブジェクトに関連付けられたグループが変更されているかどうかを指定するブール値を取得または設定します。 ( ObjectSecurity から継承されます。) |
![]() | IsContainer | この ObjectSecurity オブジェクトがコンテナ オブジェクトであるかどうかを指定するブール値を取得します。 ( ObjectSecurity から継承されます。) |
![]() | IsDS | この ObjectSecurity オブジェクトがディレクトリ オブジェクトであるかどうかを指定するブール値を取得します。 ( ObjectSecurity から継承されます。) |
![]() | OwnerModified | セキュリティ設定できるオブジェクトの所有者が変更されているかどうかを指定するブール値を取得または設定します。 ( ObjectSecurity から継承されます。) |

FileSystemSecurity メソッド



FileSystemSecurity メンバ
ファイルまたはディレクトリのアクセス制御と監査セキュリティを表します。
FileSystemSecurity データ型で公開されるメンバを以下の表に示します。

名前 | 説明 | |
---|---|---|
![]() | AccessRightType | オーバーライドされます。 FileSystemSecurity クラスでアクセス権を表すために使用する列挙体を取得します。 |
![]() | AccessRuleType | オーバーライドされます。 FileSystemSecurity クラスでアクセス規則を表すために使用する列挙体を取得します。 |
![]() | AreAccessRulesCanonical | この ObjectSecurity オブジェクトに関連付けられたアクセス規則の順序が標準であるかどうかを指定するブール値を取得します。(ObjectSecurity から継承されます。) |
![]() | AreAccessRulesProtected | この ObjectSecurity オブジェクトに関連付けられた随意アクセス制御リスト (DACL: Discretionary Access Control List) が保護されているかどうかを指定するブール値を取得します。(ObjectSecurity から継承されます。) |
![]() | AreAuditRulesCanonical | この ObjectSecurity オブジェクトに関連付けられた監査規則の順序が標準であるかどうかを指定するブール値を取得します。(ObjectSecurity から継承されます。) |
![]() | AreAuditRulesProtected | この ObjectSecurity オブジェクトに関連付けられたシステム アクセス制御リスト (SACL: System Access Control List) が保護されているかどうかを指定するブール値を取得します。(ObjectSecurity から継承されます。) |
![]() | AuditRuleType | オーバーライドされます。 FileSystemSecurity クラスで監査規則を表すために使用する型を取得します。 |

名前 | 説明 | |
---|---|---|
![]() | AccessRulesModified | この ObjectSecurity オブジェクトに関連付けられたアクセス規則が変更されているかどうかを指定するブール値を取得または設定します。(ObjectSecurity から継承されます。) |
![]() | AuditRulesModified | この ObjectSecurity オブジェクトに関連付けられた監査規則が変更されているかどうかを指定するブール値を取得または設定します。(ObjectSecurity から継承されます。) |
![]() | GroupModified | セキュリティ設定できるオブジェクトに関連付けられたグループが変更されているかどうかを指定するブール値を取得または設定します。 (ObjectSecurity から継承されます。) |
![]() | IsContainer | この ObjectSecurity オブジェクトがコンテナ オブジェクトであるかどうかを指定するブール値を取得します。(ObjectSecurity から継承されます。) |
![]() | IsDS | この ObjectSecurity オブジェクトがディレクトリ オブジェクトであるかどうかを指定するブール値を取得します。(ObjectSecurity から継承されます。) |
![]() | OwnerModified | セキュリティ設定できるオブジェクトの所有者が変更されているかどうかを指定するブール値を取得または設定します。(ObjectSecurity から継承されます。) |



- FileSystemSecurityのページへのリンク