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 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 from 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);
}
}
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);
// Remove the FileSystemAccessRule from the security settings.
fSecurity.RemoveAccessRule(new FileSystemAccessRule(account,
rights, controlType));
// 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.
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)
' Remove the FileSystemAccessRule from the security settings.
fSecurity.RemoveAccessRule(New FileSystemAccessRule(account, _
rights, controlType))
' Set the new access settings.
File.SetAccessControl(fileName, fSecurity)
End Sub
End Module
Комментарии
Класс FileSystemSecurity является базовым классом FileSecurity для классов и DirectorySecurity . Эти классы представляют все права доступа для системного файла или каталога и определяют, как проверяются попытки доступа.
Класс FileSystemSecurity представляет права доступа и аудита в виде набора правил. Каждое правило доступа представлено FileSystemAccessRule объектом , а каждое правило аудита — FileSystemAuditRule объектом .
Класс FileSystemSecurity является абстракцией базовой Майкрософт файловой системы безопасности Windows. В этой системе каждый файл или каталог имеет список управления доступом на уровне пользователей (DACL), который управляет доступом к файлу или каталогу, и системный список управления доступом (SACL), в котором указываются проверяемые попытки управления доступом. FileSystemAccessRule Классы и FileSystemAuditRule являются абстракциями записей управления доступом (ACE), которые включают списки DACL и SACCl.
Класс FileSystemSecurity скрывает многие сведения о списках DACL и SACCL. Вам не нужно беспокоиться о порядке ACE или null DACLS.
Чтобы сохранить новые или измененные данные списка управления доступом (ACL) в файле, используйте SetAccessControl метод или SetAccessControl . Чтобы сохранить новые или измененные сведения ACL в каталоге, используйте SetAccessControl метод или SetAccessControl .
Чтобы получить сведения об списке управления доступом из файла, используйте GetAccessControl метод или GetAccessControl . Чтобы получить сведения об ACL из каталога, используйте GetAccessControl метод или GetAccessControl .
Свойства
AccessRightType |
Получает значение перечисления, используемое классом FileSystemSecurity для обозначения прав доступа. |
AccessRulesModified |
Получает или задает логическое значение, которое указывает, изменены ли правила доступа, связанные с этим объектом ObjectSecurity. (Унаследовано от ObjectSecurity) |
AccessRuleType |
Получает перечисление, используемое классом FileSystemSecurity для обозначения правил доступа. |
AreAccessRulesCanonical |
Возвращает логическое значение, которое указывает, расположены ли правила доступа, связанные с этим объектом ObjectSecurity, в каноническом порядке. (Унаследовано от ObjectSecurity) |
AreAccessRulesProtected |
Возвращает логическое значение, указывающее, защищен ли список разграничительного управления доступа (DACL), связанный с этим объектом ObjectSecurity. (Унаследовано от ObjectSecurity) |
AreAuditRulesCanonical |
Возвращает логическое значение, которое указывает, расположены ли правила аудита, связанные с этим объектом ObjectSecurity, в каноническом порядке. (Унаследовано от ObjectSecurity) |
AreAuditRulesProtected |
Возвращает логическое значение, указывающее, защищен ли системный список управления доступом (SACL), связанный с этим объектом ObjectSecurity. (Унаследовано от 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. (Унаследовано от CommonObjectSecurity) |
AddAccessRule(FileSystemAccessRule) |
Добавляет указанное разрешение списка управления доступом к текущему файлу или каталогу. |
AddAuditRule(AuditRule) |
Добавляет указанное правило аудита в системный список управления доступом, связанный с данным объектом CommonObjectSecurity. (Унаследовано от 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) |
Возвращает представление на языке определения дескриптора безопасности (SDDL) указанных разделов дескриптора безопасности, связанных с этим объектом ObjectSecurity. (Унаследовано от ObjectSecurity) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ModifyAccess(AccessControlModification, AccessRule, Boolean) |
Применяет указанное изменение к списку управления доступом на уровне пользователей (DACL), связанному с этим объектом CommonObjectSecurity. (Унаследовано от CommonObjectSecurity) |
ModifyAccessRule(AccessControlModification, AccessRule, Boolean) |
Применяет указанное изменение к списку управления доступом на уровне пользователей (DACL), связанному с этим объектом ObjectSecurity. (Унаследовано от ObjectSecurity) |
ModifyAudit(AccessControlModification, AuditRule, Boolean) |
Применяет указанное изменение к системному списку управления доступом (SACL), связанному с этим объектом CommonObjectSecurity. (Унаследовано от CommonObjectSecurity) |
ModifyAuditRule(AccessControlModification, AuditRule, Boolean) |
Применяет указанное изменение к системному списку управления доступом (SACL), связанному с этим объектом ObjectSecurity. (Унаследовано от ObjectSecurity) |
Persist(Boolean, String, AccessControlSections) |
Сохраняет указанные разделы дескриптора безопасности, связанного с этим объектом ObjectSecurity, в постоянном хранилище. Рекомендуется, чтобы значения параметров |
Persist(SafeHandle, AccessControlSections) |
Сохраняет указанные разделы дескриптора безопасности, связанного с этим объектом NativeObjectSecurity, в постоянном хранилище. Рекомендуется, чтобы значения параметров |
Persist(SafeHandle, AccessControlSections, Object) |
Сохраняет указанные разделы дескриптора безопасности, связанного с этим объектом NativeObjectSecurity, в постоянном хранилище. Рекомендуется, чтобы значения параметров |
Persist(String, AccessControlSections) |
Сохраняет указанные разделы дескриптора безопасности, связанного с этим объектом NativeObjectSecurity, в постоянном хранилище. Рекомендуется, чтобы значения параметров |
Persist(String, AccessControlSections, Object) |
Сохраняет указанные разделы дескриптора безопасности, связанного с этим объектом NativeObjectSecurity, в постоянном хранилище. Рекомендуется, чтобы значения параметров |
PurgeAccessRules(IdentityReference) |
Удаляет все правила доступа, связанные с указанным объектом IdentityReference. (Унаследовано от ObjectSecurity) |
PurgeAuditRules(IdentityReference) |
Удаляет все правила, связанные с заданным IdentityReference. (Унаследовано от ObjectSecurity) |
ReadLock() |
Блокирует этот объект ObjectSecurity для доступа для чтения. (Унаследовано от ObjectSecurity) |
ReadUnlock() |
Разблокирует этот объект ObjectSecurity для доступа для чтения. (Унаследовано от ObjectSecurity) |
RemoveAccessRule(AccessRule) |
Удаляет правила доступа с тем же идентификатором безопасности и маской доступа, что и у указанного правила доступа, из списка управления доступом на уровне пользователей, связанного с текущим объектом CommonObjectSecurity. (Унаследовано от CommonObjectSecurity) |
RemoveAccessRule(FileSystemAccessRule) |
Удаляет все подходящие разрешения и запреты списка управления доступом из текущего файла или каталога. |
RemoveAccessRuleAll(AccessRule) |
Удаляет все правила доступа с тем же идентификатором безопасности, что и у указанного правила доступа, из списка управления доступом на уровне пользователей, связанного с текущим объектом CommonObjectSecurity. (Унаследовано от CommonObjectSecurity) |
RemoveAccessRuleAll(FileSystemAccessRule) |
Удаляет все разрешения списка управления доступом для указанного пользователя из текущего файла или каталога. |
RemoveAccessRuleSpecific(AccessRule) |
Удаляет все правила доступа, в точности совпадающие с указанным правилом доступа, из списка управления доступом на уровне пользователей, связанного с текущим объектом CommonObjectSecurity. (Унаследовано от CommonObjectSecurity) |
RemoveAccessRuleSpecific(FileSystemAccessRule) |
Удаляет одно подходящее разрешение или один запрет списка управления доступом из текущего файла или каталога. |
RemoveAuditRule(AuditRule) |
Удаляет правила аудита с тем же идентификатором безопасности и маской доступа, что и у указанного правила аудита, из системного списка управления доступом, связанного с текущим объектом CommonObjectSecurity. (Унаследовано от CommonObjectSecurity) |
RemoveAuditRule(FileSystemAuditRule) |
Удаляет все подходящие разрешающие или запрещающие правила аудита из текущего файла или каталога. |
RemoveAuditRuleAll(AuditRule) |
Удаляет все правила аудита с тем же идентификатором безопасности, что и у указанного правила аудита, из системного списка управления доступом, связанного с текущим объектом CommonObjectSecurity. (Унаследовано от CommonObjectSecurity) |
RemoveAuditRuleAll(FileSystemAuditRule) |
Удаляет все правила аудита для указанного пользователя из текущего файла или каталога. |
RemoveAuditRuleSpecific(AuditRule) |
Удаляет все правила аудита, в точности совпадающие с указанным правилом аудита, из системного списка управления доступом, связанного с текущим объектом CommonObjectSecurity. (Унаследовано от CommonObjectSecurity) |
RemoveAuditRuleSpecific(FileSystemAuditRule) |
Удаляет одно подходящее разрешающее или запрещающее правило аудита из текущего файла или каталога. |
ResetAccessRule(AccessRule) |
Удаляет все правила доступа из списка управления доступом на уровне пользователей (DACL), связанного с текущим объектом CommonObjectSecurity, а затем добавляет указанное правило доступа. (Унаследовано от CommonObjectSecurity) |
ResetAccessRule(FileSystemAccessRule) |
Добавляет указанное разрешение списка управления доступом к текущему файлу или каталогу и удаляет все совпадающие разрешения списка управления доступом. |
SetAccessRule(AccessRule) |
Удаляет все правила доступа с тем же идентификатором и квалификатором безопасности, что и у указанного правила доступа, из списка управления доступом на уровне пользователей, связанного с текущим объектом CommonObjectSecurity, а затем добавляет указанное правило доступа. (Унаследовано от CommonObjectSecurity) |
SetAccessRule(FileSystemAccessRule) |
Устанавливает указанное разрешение списка управления доступом для текущего файла или каталога. |
SetAccessRuleProtection(Boolean, Boolean) |
Задает или удаляет защиту правил доступа, связанных с этим объектом ObjectSecurity. Защищенные правила доступа не могут изменяться родительскими объектами через наследование. (Унаследовано от ObjectSecurity) |
SetAuditRule(AuditRule) |
Удаляет все правила аудита с тем же идентификатором и квалификатором безопасности, что и у указанного правила аудита, из системного списка управления доступом, связанного с текущим объектом CommonObjectSecurity, а затем добавляет указанное правило аудита. (Унаследовано от 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) |
Задает дескриптор безопасности для данного объекта ObjectSecurity из указанной строки языка определения дескрипторов безопасности (SDDL). (Унаследовано от ObjectSecurity) |
SetSecurityDescriptorSddlForm(String, AccessControlSections) |
Задает указанные разделы дескриптора безопасности для данного объекта ObjectSecurity из указанной строки языка определения дескрипторов безопасности (SDDL). (Унаследовано от ObjectSecurity) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
WriteLock() |
Блокирует доступ к этому объекту ObjectSecurity для записи. (Унаследовано от ObjectSecurity) |
WriteUnlock() |
Разблокирует этот объект ObjectSecurity для доступа для записи. (Унаследовано от ObjectSecurity) |
Применяется к
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по