FileSystemAuditRule 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示存取控制項目 (ACE) 的抽象,其定義檔案或目錄的稽核規則。 此類別無法獲得繼承。
public ref class FileSystemAuditRule sealed : System::Security::AccessControl::AuditRule
public sealed class FileSystemAuditRule : System.Security.AccessControl.AuditRule
[System.Security.SecurityCritical]
public sealed class FileSystemAuditRule : System.Security.AccessControl.AuditRule
type FileSystemAuditRule = class
inherit AuditRule
[<System.Security.SecurityCritical>]
type FileSystemAuditRule = class
inherit AuditRule
Public NotInheritable Class FileSystemAuditRule
Inherits AuditRule
- 繼承
- 屬性
範例
下列程式代碼範例會 FileSystemAuditRule 使用 類別來新增,然後從檔案中移除稽核規則。 您必須提供有效的使用者或群組帳戶,才能執行這個範例。
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.
AddFileAuditRule(FileName, @"MYDOMAIN\MyAccount", FileSystemRights.ReadData, AuditFlags.Failure);
Console.WriteLine("Removing access control entry from " + FileName);
// Remove the access control entry from the file.
RemoveFileAuditRule(FileName, @"MYDOMAIN\MyAccount", FileSystemRights.ReadData, AuditFlags.Failure);
Console.WriteLine("Done.");
}
catch (IOException e)
{
Console.WriteLine("Unable to open the file: " + e.Message);
}
catch (PrivilegeNotHeldException e)
{
Console.WriteLine("The current account does not have the correct privileges: " + e.Message);
}
Console.ReadLine();
}
// Adds an ACL entry on the specified file for the specified account.
public static void AddFileAuditRule(string FileName, string Account, FileSystemRights Rights, AuditFlags AuditRule)
{
// Get a FileSecurity object that represents the
// current security settings.
FileSecurity fSecurity = File.GetAccessControl(FileName);
// Add the FileSystemAuditRule to the security settings.
fSecurity.AddAuditRule(new FileSystemAuditRule(Account,
Rights,
AuditRule));
// Set the new access settings.
File.SetAccessControl(FileName, fSecurity);
}
// Removes an ACL entry on the specified file for the specified account.
public static void RemoveFileAuditRule(string FileName, string Account, FileSystemRights Rights, AuditFlags AuditRule)
{
// Get a FileSecurity object that represents the
// current security settings.
FileSecurity fSecurity = File.GetAccessControl(FileName);
// Add the FileSystemAuditRule to the security settings.
fSecurity.RemoveAuditRule(new FileSystemAuditRule(Account,
Rights,
AuditRule));
// Set the new access settings.
File.SetAccessControl(FileName, 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.
AddFileAuditRule(FileName, "MYDOMAIN\MyAccount", FileSystemRights.ReadData, AuditFlags.Failure)
Console.WriteLine("Removing access control entry from " + FileName)
' Remove the access control entry from the file.
RemoveFileAuditRule(FileName, "MYDOMAIN\MyAccount", FileSystemRights.ReadData, AuditFlags.Failure)
Console.WriteLine("Done.")
Catch e As IOException
Console.WriteLine("Unable to open the file: " & e.Message)
Catch e As PrivilegeNotHeldException
Console.WriteLine("The current account does not have the correct privileges: " & e.Message)
End Try
Console.ReadLine()
End Sub
' Adds an ACL entry on the specified file for the specified account.
Sub AddFileAuditRule(ByVal FileName As String, ByVal Account As String, ByVal Rights As FileSystemRights, ByVal AuditRule As AuditFlags)
' Get a FileSecurity object that represents the
' current security settings.
Dim fSecurity As FileSecurity = File.GetAccessControl(FileName)
' Add the FileSystemAuditRule to the security settings.
fSecurity.AddAuditRule(New FileSystemAuditRule(Account, Rights, AuditRule))
' Set the new access settings.
File.SetAccessControl(FileName, fSecurity)
End Sub
' Removes an ACL entry on the specified file for the specified account.
Sub RemoveFileAuditRule(ByVal FileName As String, ByVal Account As String, ByVal Rights As FileSystemRights, ByVal AuditRule As AuditFlags)
' Get a FileSecurity object that represents the
' current security settings.
Dim fSecurity As FileSecurity = File.GetAccessControl(FileName)
' Add the FileSystemAuditRule to the security settings.
fSecurity.RemoveAuditRule(New FileSystemAuditRule(Account, Rights, AuditRule))
' Set the new access settings.
File.SetAccessControl(FileName, fSecurity)
End Sub
End Module
備註
類別 FileSystemAuditRule 代表基礎訪問控制專案 (ACE) 抽象概念,指定使用者帳戶、提供讀取、寫入等) (存取類型,以及是否要執行稽核。 這個類別也可以指定如何繼承稽核規則,並將其傳播至物件。
若要允許 Windows NT 或更新版本的檔案和目錄稽核,您必須在計算機上啟用稽核存取安全策略。 根據預設,此原則會設定為 [無稽核]。
若要啟用稽核存取安全策略,請執行下列步驟:
開啟 本機安全性設定 Microsoft Management Console (MMC) 嵌入式管理單元,位於 [系統管理工具] 資料夾中。
展開 [本機原則] 資料夾,然後按兩下 [稽核原則] 資料夾。
按兩下 MMC 嵌入式管理單元右窗格中的 [ 稽核物件存取] 專案,或以滑鼠右鍵按下並選擇 [屬性] 以顯示 [ 稽核物件存取屬性 ] 對話框。
選取 [ 成功 ] 或 [ 失敗 ] 複選框,以記錄成功或失敗。
請注意,用戶帳戶的稽核規則需要相同用戶帳戶的對應存取規則。
FileSystemAuditRule使用類別來建立新的稽核規則。 您可以使用 或 DirectorySecurity 類別儲存此規則FileSecurity。
建構函式
FileSystemAuditRule(IdentityReference, FileSystemRights, AuditFlags) |
利用使用者帳戶的參考、指定與稽核規則關聯之作業類型的值以及指定何時執行稽核的值,來初始化 FileSystemAuditRule 類別的新執行個體。 |
FileSystemAuditRule(IdentityReference, FileSystemRights, InheritanceFlags, PropagationFlags, AuditFlags) |
利用使用者帳戶的參考名稱、指定與稽核規則關聯之作業類型的值、決定如何繼承權限的值、決定如何散佈權限的值以及指定何時執行稽核的值,來初始化 FileSystemAuditRule 類別的新執行個體。 |
FileSystemAuditRule(String, FileSystemRights, AuditFlags) |
利用使用者帳戶名稱、指定與稽核規則關聯之作業類型的值以及指定何時執行稽核的值,來初始化 FileSystemAuditRule 類別的新執行個體。 |
FileSystemAuditRule(String, FileSystemRights, InheritanceFlags, PropagationFlags, AuditFlags) |
利用使用者帳戶名稱、指定與稽核規則關聯之作業類型的值、決定如何繼承權限的值、決定如何散佈權限的值,以及指定何時執行稽核的值,來初始化 FileSystemAuditRule 類別的新執行個體。 |
屬性
AccessMask |
取得此規則的存取遮罩。 (繼承來源 AuthorizationRule) |
AuditFlags |
取得這個稽核規則的稽核旗標。 (繼承來源 AuditRule) |
FileSystemRights |
取得與目前 FileSystemRights 物件關聯的 FileSystemAuditRule 旗標。 |
IdentityReference |
取得要套用此規則的 IdentityReference。 (繼承來源 AuthorizationRule) |
InheritanceFlags |
取得旗標值,這個值會決定子物件繼承這項規則的方式。 (繼承來源 AuthorizationRule) |
IsInherited |
取得值,表示這個規則是否會明確地設定或繼承自父容器物件。 (繼承來源 AuthorizationRule) |
PropagationFlags |
取得傳播旗標的值,該值判斷這個規則的繼承如何傳播到子物件。 只有當 InheritanceFlags 列舉的值不是 None,這個屬性才是重要的。 (繼承來源 AuthorizationRule) |
方法
Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
GetType() |
取得目前執行個體的 Type。 (繼承來源 Object) |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
ToString() |
傳回代表目前物件的字串。 (繼承來源 Object) |