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


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

FileSecurity クラスを使用して、アクセス制御リスト (ACL) のエントリを追加した後、そのエントリをファイルから削除するコード例を次に示します。この例を実行するには、有効なユーザー アカウントまたはグループ アカウントを指定する必要があります。
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.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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からFileSecurity クラスを検索する場合は、下記のリンクをクリックしてください。

- FileSecurity クラスのページへのリンク