次の方法で共有


FileSystemSecurity クラス

定義

ファイルまたはディレクトリのアクセス制御と監査セキュリティを表します。

public ref class FileSystemSecurity abstract : System::Security::AccessControl::NativeObjectSecurity
public abstract class FileSystemSecurity : System.Security.AccessControl.NativeObjectSecurity
[System.Security.SecurityCritical]
public abstract class FileSystemSecurity : System.Security.AccessControl.NativeObjectSecurity
type FileSystemSecurity = class
    inherit NativeObjectSecurity
[<System.Security.SecurityCritical>]
type FileSystemSecurity = class
    inherit NativeObjectSecurity
Public MustInherit Class FileSystemSecurity
Inherits NativeObjectSecurity
継承
派生
属性

次のコード例では、FileSecurity クラスを使用して、アクセス制御リスト (ACL) エントリをファイルに追加して削除します。 この例を実行するには、有効なユーザーまたはグループ アカウントを指定する必要があります。

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)
        {
            FileInfo fileInfo = new(fileName);
            FileSecurity fSecurity = fileInfo.GetAccessControl();

            // Add the FileSystemAccessRule to the security settings.
            fSecurity.AddAccessRule(new FileSystemAccessRule(account,
                rights, controlType));

            // Set the new access settings.
            fileInfo.SetAccessControl(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)
        {
            FileInfo fileInfo = new(fileName);
            FileSecurity fSecurity = fileInfo.GetAccessControl();

            // Remove the FileSystemAccessRule from the security settings.
            fSecurity.RemoveAccessRule(new FileSystemAccessRule(account,
                rights, controlType));

            // Set the new access settings.
            fileInfo.SetAccessControl(fSecurity);
        }
    }
}
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)

        Dim fileInfo As New FileInfo(fileName)
        Dim fSecurity As FileSecurity = fileInfo.GetAccessControl()

        ' Add the FileSystemAccessRule to the security settings. 
        Dim accessRule As New FileSystemAccessRule(account, rights, controlType)

        fSecurity.AddAccessRule(accessRule)

        ' Set the new access settings.
        fileInfo.SetAccessControl(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)

        Dim fileInfo As New FileInfo(fileName)
        Dim fSecurity As FileSecurity = fileInfo.GetAccessControl()

        ' Remove the FileSystemAccessRule from the security settings. 
        fSecurity.RemoveAccessRule(New FileSystemAccessRule(account,
            rights, controlType))

        ' Set the new access settings.
        fileInfo.SetAccessControl(fSecurity)

    End Sub
End Module

注釈

FileSystemSecurity クラスは、FileSecurity クラスと DirectorySecurity クラスの基本クラスです。 これらのクラスは、システム ファイルまたはディレクトリのすべてのアクセス権を表し、アクセス試行の監査方法を定義します。

FileSystemSecurity クラスは、アクセス権と監査権限を一連の規則として表します。 各アクセス規則は FileSystemAccessRule オブジェクトで表され、各監査規則は FileSystemAuditRule オブジェクトによって表されます。

FileSystemSecurity クラスは、基になる Microsoft Windows ファイル セキュリティ システムの抽象化です。 このシステムでは、各ファイルまたはディレクトリには、ファイルまたはディレクトリへのアクセスを制御する随意アクセス制御リスト (DACL) と、監査されるアクセス制御の試行を指定するシステム アクセス制御リスト (SACL) があります。 FileSystemAccessRule クラスと FileSystemAuditRule クラスは、DACL と SACL を構成するアクセス制御エントリ (ACE) の抽象化です。

FileSystemSecurity クラスでは、DACL と SACL の詳細の多くが非表示になります。ACE の順序付けや NULL DACLS について心配する必要はありません。

次の .NET 実装に依存するメソッドを使用して、ファイルに ACL 情報を追加または取得します。

.NET の実装 ルールを追加する ルールを取得する
。網 FileSystemAclExtensions.SetAccessControl(FileInfo, FileSecurity) FileSystemAclExtensions.GetAccessControl(FileInfo)
.NET Framework FileInfo.SetAccessControl(FileSecurity) FileInfo.GetAccessControl()

プロパティ

AccessRightType

FileSystemSecurity クラスがアクセス権を表すために使用する列挙体を取得します。

AccessRulesModified

この ObjectSecurity オブジェクトに関連付けられているアクセス規則が変更されたかどうかを示すブール値を取得または設定します。

(継承元 ObjectSecurity)
AccessRuleType

FileSystemSecurity クラスがアクセス規則を表すために使用する列挙体を取得します。

AreAccessRulesCanonical

この ObjectSecurity オブジェクトに関連付けられているアクセス規則が正規の順序であるかどうかを示すブール値を取得します。

(継承元 ObjectSecurity)
AreAccessRulesProtected

この ObjectSecurity オブジェクトに関連付けられている随意アクセス制御リスト (DACL) を保護するかどうかを指定するブール値を取得します。

(継承元 ObjectSecurity)
AreAuditRulesCanonical

この ObjectSecurity オブジェクトに関連付けられている監査規則が正規の順序であるかどうかを示すブール値を取得します。

(継承元 ObjectSecurity)
AreAuditRulesProtected

この ObjectSecurity オブジェクトに関連付けられているシステム アクセス制御リスト (SACL) が保護されているかどうかを示すブール値を取得します。

(継承元 ObjectSecurity)
AuditRulesModified

この ObjectSecurity オブジェクトに関連付けられている監査規則が変更されたかどうかを示すブール値を取得または設定します。

(継承元 ObjectSecurity)
AuditRuleType

FileSystemSecurity クラスが監査規則を表すために使用する型を取得します。

GroupModified

セキュリティ保護可能なオブジェクトに関連付けられているグループが変更されたかどうかを示すブール値を取得または設定します。

(継承元 ObjectSecurity)
IsContainer

この ObjectSecurity オブジェクトがコンテナー オブジェクトであるかどうかを示すブール値を取得します。

(継承元 ObjectSecurity)
IsDS

この ObjectSecurity オブジェクトがディレクトリ オブジェクトであるかどうかを示すブール値を取得します。

(継承元 ObjectSecurity)
OwnerModified

セキュリティ保護可能なオブジェクトの所有者が変更されたかどうかを示すブール値を取得または設定します。

(継承元 ObjectSecurity)
SecurityDescriptor

このインスタンスのセキュリティ記述子を取得します。

(継承元 ObjectSecurity)

メソッド

AccessRuleFactory(IdentityReference, Int32, Boolean, InheritanceFlags, PropagationFlags, AccessControlType)

指定したアクセス権、アクセス制御、およびフラグを使用して、指定したユーザーの新しいアクセス制御規則を表す FileSystemAccessRule クラスの新しいインスタンスを初期化します。

AddAccessRule(AccessRule)

指定したアクセス規則を、この CommonObjectSecurity オブジェクトに関連付けられている随意アクセス制御リスト (DACL) に追加します。

(継承元 CommonObjectSecurity)
AddAccessRule(FileSystemAccessRule)

指定したアクセス制御リスト (ACL) アクセス許可を現在のファイルまたはディレクトリに追加します。

AddAuditRule(AuditRule)

指定した監査規則を、この CommonObjectSecurity オブジェクトに関連付けられているシステム アクセス制御リスト (SACL) に追加します。

(継承元 CommonObjectSecurity)
AddAuditRule(FileSystemAuditRule)

指定した監査規則を現在のファイルまたはディレクトリに追加します。

AuditRuleFactory(IdentityReference, Int32, Boolean, InheritanceFlags, PropagationFlags, AuditFlags)

指定したユーザーの指定した監査規則を表す FileSystemAuditRule クラスの新しいインスタンスを初期化します。

Equals(Object)

指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetAccessRules(Boolean, Boolean, Type)

指定したセキュリティ識別子に関連付けられているアクセス規則のコレクションを取得します。

(継承元 CommonObjectSecurity)
GetAuditRules(Boolean, Boolean, Type)

指定したセキュリティ識別子に関連付けられている監査規則のコレクションを取得します。

(継承元 CommonObjectSecurity)
GetGroup(Type)

指定した所有者に関連付けられているプライマリ グループを取得します。

(継承元 ObjectSecurity)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetOwner(Type)

指定したプライマリ グループに関連付けられている所有者を取得します。

(継承元 ObjectSecurity)
GetSecurityDescriptorBinaryForm()

この ObjectSecurity オブジェクトのセキュリティ記述子情報を表すバイト値の配列を返します。

(継承元 ObjectSecurity)
GetSecurityDescriptorSddlForm(AccessControlSections)

この ObjectSecurity オブジェクトに関連付けられているセキュリティ記述子の指定されたセクションのセキュリティ記述子定義言語 (SDDL) 表現を返します。

(継承元 ObjectSecurity)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Objectの簡易コピーを作成します。

(継承元 Object)
ModifyAccess(AccessControlModification, AccessRule, Boolean)

指定した変更を、この CommonObjectSecurity オブジェクトに関連付けられている随意アクセス制御リスト (DACL) に適用します。

(継承元 CommonObjectSecurity)
ModifyAccessRule(AccessControlModification, AccessRule, Boolean)

指定した変更を、この ObjectSecurity オブジェクトに関連付けられている随意アクセス制御リスト (DACL) に適用します。

(継承元 ObjectSecurity)
ModifyAudit(AccessControlModification, AuditRule, Boolean)

指定した変更を、この CommonObjectSecurity オブジェクトに関連付けられているシステム アクセス制御リスト (SACL) に適用します。

(継承元 CommonObjectSecurity)
ModifyAuditRule(AccessControlModification, AuditRule, Boolean)

指定した変更を、この ObjectSecurity オブジェクトに関連付けられているシステム アクセス制御リスト (SACL) に適用します。

(継承元 ObjectSecurity)
Persist(Boolean, String, AccessControlSections)

この ObjectSecurity オブジェクトに関連付けられているセキュリティ記述子の指定されたセクションを永続的ストレージに保存します。 コンストラクターと永続化メソッドに渡される includeSections パラメーターの値は同じにすることをお勧めします。

(継承元 ObjectSecurity)
Persist(SafeHandle, AccessControlSections)

この NativeObjectSecurity オブジェクトに関連付けられているセキュリティ記述子の指定されたセクションを永続的ストレージに保存します。 コンストラクターと永続化メソッドに渡される includeSections パラメーターの値は同じにすることをお勧めします。

(継承元 NativeObjectSecurity)
Persist(SafeHandle, AccessControlSections, Object)

この NativeObjectSecurity オブジェクトに関連付けられているセキュリティ記述子の指定されたセクションを永続的ストレージに保存します。 コンストラクターと永続化メソッドに渡される includeSections パラメーターの値は同じにすることをお勧めします。

(継承元 NativeObjectSecurity)
Persist(String, AccessControlSections)

この NativeObjectSecurity オブジェクトに関連付けられているセキュリティ記述子の指定されたセクションを永続的ストレージに保存します。 コンストラクターと永続化メソッドに渡される includeSections パラメーターの値は同じにすることをお勧めします。

(継承元 NativeObjectSecurity)
Persist(String, AccessControlSections, Object)

この NativeObjectSecurity オブジェクトに関連付けられているセキュリティ記述子の指定されたセクションを永続的ストレージに保存します。 コンストラクターと永続化メソッドに渡される includeSections パラメーターの値は同じにすることをお勧めします。

(継承元 NativeObjectSecurity)
PurgeAccessRules(IdentityReference)

指定した IdentityReferenceに関連付けられているすべてのアクセス規則を削除します。

(継承元 ObjectSecurity)
PurgeAuditRules(IdentityReference)

指定した IdentityReferenceに関連付けられているすべての監査規則を削除します。

(継承元 ObjectSecurity)
ReadLock()

この ObjectSecurity オブジェクトを読み取りアクセス用にロックします。

(継承元 ObjectSecurity)
ReadUnlock()

読み取りアクセスのために、この ObjectSecurity オブジェクトのロックを解除します。

(継承元 ObjectSecurity)
RemoveAccessRule(AccessRule)

指定したアクセス規則と同じセキュリティ識別子とアクセス マスクを含むアクセス規則を、この CommonObjectSecurity オブジェクトに関連付けられている随意アクセス制御リスト (DACL) から削除します。

(継承元 CommonObjectSecurity)
RemoveAccessRule(FileSystemAccessRule)

現在のファイルまたはディレクトリから、一致するすべての許可または拒否アクセス制御リスト (ACL) のアクセス許可を削除します。

RemoveAccessRuleAll(AccessRule)

指定したアクセス規則と同じセキュリティ識別子を持つすべてのアクセス規則を、この CommonObjectSecurity オブジェクトに関連付けられている随意アクセス制御リスト (DACL) から削除します。

(継承元 CommonObjectSecurity)
RemoveAccessRuleAll(FileSystemAccessRule)

現在のファイルまたはディレクトリから、指定したユーザーのすべてのアクセス制御リスト (ACL) アクセス許可を削除します。

RemoveAccessRuleSpecific(AccessRule)

指定したアクセス規則と完全に一致するすべてのアクセス規則を、この CommonObjectSecurity オブジェクトに関連付けられている随意アクセス制御リスト (DACL) から削除します。

(継承元 CommonObjectSecurity)
RemoveAccessRuleSpecific(FileSystemAccessRule)

現在のファイルまたはディレクトリから、一致する 1 つの許可または拒否アクセス制御リスト (ACL) アクセス許可を削除します。

RemoveAuditRule(AuditRule)

指定した監査規則と同じセキュリティ識別子とアクセス マスクを含む監査規則を、この CommonObjectSecurity オブジェクトに関連付けられているシステム アクセス制御リスト (SACL) から削除します。

(継承元 CommonObjectSecurity)
RemoveAuditRule(FileSystemAuditRule)

現在のファイルまたはディレクトリから、一致するすべての許可または拒否監査規則を削除します。

RemoveAuditRuleAll(AuditRule)

指定した監査規則と同じセキュリティ識別子を持つすべての監査規則を、この CommonObjectSecurity オブジェクトに関連付けられているシステム アクセス制御リスト (SACL) から削除します。

(継承元 CommonObjectSecurity)
RemoveAuditRuleAll(FileSystemAuditRule)

指定したユーザーのすべての監査規則を現在のファイルまたはディレクトリから削除します。

RemoveAuditRuleSpecific(AuditRule)

指定した監査規則と完全に一致するすべての監査規則を、この CommonObjectSecurity オブジェクトに関連付けられているシステム アクセス制御リスト (SACL) から削除します。

(継承元 CommonObjectSecurity)
RemoveAuditRuleSpecific(FileSystemAuditRule)

現在のファイルまたはディレクトリから、一致する許可または拒否の監査規則を 1 つ削除します。

ResetAccessRule(AccessRule)

この CommonObjectSecurity オブジェクトに関連付けられている随意アクセス制御リスト (DACL) 内のすべてのアクセス規則を削除し、指定したアクセス規則を追加します。

(継承元 CommonObjectSecurity)
ResetAccessRule(FileSystemAccessRule)

指定したアクセス制御リスト (ACL) アクセス許可を現在のファイルまたはディレクトリに追加し、一致するすべての ACL アクセス許可を削除します。

SetAccessRule(AccessRule)

この CommonObjectSecurity オブジェクトに関連付けられている随意アクセス制御リスト (DACL) の指定したアクセス規則と同じセキュリティ識別子と修飾子を含むすべてのアクセス規則を削除し、指定したアクセス規則を追加します。

(継承元 CommonObjectSecurity)
SetAccessRule(FileSystemAccessRule)

現在のファイルまたはディレクトリに対して指定されたアクセス制御リスト (ACL) アクセス許可を設定します。

SetAccessRuleProtection(Boolean, Boolean)

この ObjectSecurity オブジェクトに関連付けられているアクセス規則の保護を設定または削除します。 保護されたアクセス規則は、継承によって親オブジェクトによって変更することはできません。

(継承元 ObjectSecurity)
SetAuditRule(AuditRule)

この CommonObjectSecurity オブジェクトに関連付けられているシステム アクセス制御リスト (SACL) の指定した監査規則と同じセキュリティ識別子と修飾子を含むすべての監査規則を削除し、指定した監査規則を追加します。

(継承元 CommonObjectSecurity)
SetAuditRule(FileSystemAuditRule)

現在のファイルまたはディレクトリに対して指定された監査規則を設定します。

SetAuditRuleProtection(Boolean, Boolean)

この ObjectSecurity オブジェクトに関連付けられている監査規則の保護を設定または削除します。 保護された監査規則は、継承によって親オブジェクトによって変更することはできません。

(継承元 ObjectSecurity)
SetGroup(IdentityReference)

この ObjectSecurity オブジェクトに関連付けられているセキュリティ記述子のプライマリ グループを設定します。

(継承元 ObjectSecurity)
SetOwner(IdentityReference)

この ObjectSecurity オブジェクトに関連付けられているセキュリティ記述子の所有者を設定します。

(継承元 ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[])

指定したバイト値の配列から、この ObjectSecurity オブジェクトのセキュリティ記述子を設定します。

(継承元 ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[], AccessControlSections)

指定したバイト値の配列から、この ObjectSecurity オブジェクトのセキュリティ記述子の指定されたセクションを設定します。

(継承元 ObjectSecurity)
SetSecurityDescriptorSddlForm(String)

指定したセキュリティ記述子定義言語 (SDDL) 文字列から、この ObjectSecurity オブジェクトのセキュリティ記述子を設定します。

(継承元 ObjectSecurity)
SetSecurityDescriptorSddlForm(String, AccessControlSections)

指定したセキュリティ記述子定義言語 (SDDL) 文字列から、この ObjectSecurity オブジェクトのセキュリティ記述子の指定されたセクションを設定します。

(継承元 ObjectSecurity)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)
WriteLock()

この ObjectSecurity オブジェクトを書き込みアクセス用にロックします。

(継承元 ObjectSecurity)
WriteUnlock()

書き込みアクセスのために、この ObjectSecurity オブジェクトのロックを解除します。

(継承元 ObjectSecurity)

適用対象