FileSecurity クラスとは? わかりやすく解説

FileSecurity クラス

メモ : このクラスは、.NET Framework version 2.0新しく追加されたものです。

ファイルアクセス制御および監査セキュリティ表します。このクラス継承できません。

名前空間: System.Security.AccessControl
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public NotInheritable Class
 FileSecurity
    Inherits FileSystemSecurity
public sealed class FileSecurity : FileSystemSecurity
public ref class FileSecurity sealed : public
 FileSystemSecurity
public final class FileSecurity extends FileSystemSecurity
public final class FileSecurity extends
 FileSystemSecurity
解説解説

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.Object
   System.Security.AccessControl.ObjectSecurity
     System.Security.AccessControl.CommonObjectSecurity
       System.Security.AccessControl.NativeObjectSecurity
         System.Security.AccessControl.FileSystemSecurity
          System.Security.AccessControl.FileSecurity
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
FileSecurity メンバ
System.Security.AccessControl 名前空間



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「FileSecurity クラス」の関連用語

FileSecurity クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



FileSecurity クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS