RegistrySecurity Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет Windows безопасность управления доступом для раздела реестра. Этот класс не наследуется.
public ref class RegistrySecurity sealed : System::Security::AccessControl::NativeObjectSecurity
public sealed class RegistrySecurity : System.Security.AccessControl.NativeObjectSecurity
[System.Security.SecurityCritical]
public sealed class RegistrySecurity : System.Security.AccessControl.NativeObjectSecurity
type RegistrySecurity = class
inherit NativeObjectSecurity
[<System.Security.SecurityCritical>]
type RegistrySecurity = class
inherit NativeObjectSecurity
Public NotInheritable Class RegistrySecurity
Inherits NativeObjectSecurity
- Наследование
- Атрибуты
Примеры
В этом разделе содержатся два примера кода. В первом примере показано, как совместимые правила объединяются при добавлении и удалении, а второй — как флаги наследования и распространения влияют на добавление и удаление правил.
Пример 1
В следующем примере кода показано, как метод удаляет права из совместимого правила и как RemoveAccessRuleAddAccessRule метод объединяет права с совместимыми правилами.
В примере создается RegistrySecurity объект и добавляется правило, разрешающее текущие права пользователя RegistryRights.ReadKey . Затем в примере создается правило, которое предоставляет пользователю RegistryRights.SetValueте же права на наследование и распространение, что и первое правило, и использует RemoveAccessRule метод для удаления этого нового правила из RegistrySecurity объекта. SetValue является компонентом ReadKey, поэтому он удаляется из совместимого правила. Отображаются правила в RegistrySecurity объекте, показывающие оставшиеся компоненты ReadKey.
Затем в примере кода вызывается AddAccessRule метод для слияния SetValue справа в правило в объекте RegistrySecurity .
Note
Этот пример не присоединяет объект безопасности к объекту RegistryKey . Второй пример в этом разделе присоединяет объект безопасности, и поэтому примеры в RegistryKey.GetAccessControl и RegistryKey.SetAccessControl.
using System;
using System.Security.AccessControl;
using System.Security.Principal;
using System.Security;
using Microsoft.Win32;
public class Example
{
public static void Main()
{
string user = Environment.UserDomainName + "\\"
+ Environment.UserName;
// Create a security object that grants no access.
RegistrySecurity mSec = new RegistrySecurity();
// Add a rule that grants the current user ReadKey
// rights. ReadKey is a combination of four other
// rights. The rule is inherited by all
// contained subkeys.
RegistryAccessRule rule = new RegistryAccessRule(user,
RegistryRights.ReadKey,
InheritanceFlags.ContainerInherit,
PropagationFlags.None,
AccessControlType.Allow);
mSec.AddAccessRule(rule);
// Create a rule that allows the current user only the
// right to query the key/value pairs of a key, using
// the same inheritance and propagation flags as the
// first rule. QueryValues is a constituent of
// ReadKey, so when this rule is removed, using the
// RemoveAccessRule method, ReadKey is broken into
// its constituent parts.
rule = new RegistryAccessRule(user,
RegistryRights.QueryValues,
InheritanceFlags.ContainerInherit,
PropagationFlags.None,
AccessControlType.Allow);
mSec.RemoveAccessRule(rule);
// Display the rules in the security object.
ShowSecurity(mSec);
// Add the second rule back. It merges with the
// existing rule, so that the rule is now displayed
// as ReadKey.
mSec.AddAccessRule(rule);
// Display the rules in the security object.
ShowSecurity(mSec);
}
private static void ShowSecurity(RegistrySecurity security)
{
Console.WriteLine("\r\nCurrent access rules:\r\n");
foreach( RegistryAccessRule ar in security.GetAccessRules(true, true, typeof(NTAccount)) )
{
Console.WriteLine(" User: {0}", ar.IdentityReference);
Console.WriteLine(" Type: {0}", ar.AccessControlType);
Console.WriteLine(" Rights: {0}", ar.RegistryRights);
Console.WriteLine(" Inheritance: {0}", ar.InheritanceFlags);
Console.WriteLine(" Propagation: {0}", ar.PropagationFlags);
Console.WriteLine(" Inherited? {0}", ar.IsInherited);
Console.WriteLine();
}
}
}
/* This code example produces output similar to following:
Current access rules:
User: TestDomain\TestUser
Type: Allow
Rights: EnumerateSubKeys, Notify, ReadPermissions
Inheritance: ContainerInherit
Propagation: None
Inherited? False
Current access rules:
User: TestDomain\TestUser
Type: Allow
Rights: ReadKey
Inheritance: ContainerInherit
Propagation: None
Inherited? False
*/
Option Explicit
Imports System.Security.AccessControl
Imports System.Security.Principal
Imports System.Security
Imports Microsoft.Win32
Public Class Example
Public Shared Sub Main()
Dim user As String = Environment.UserDomainName _
& "\" & Environment.UserName
' Create a security object that grants no access.
Dim mSec As New RegistrySecurity()
' Add a rule that grants the current user ReadKey
' rights. ReadKey is a combination of four other
' rights. The rule is inherited by all
' contained subkeys.
Dim rule As New RegistryAccessRule(user, _
RegistryRights.ReadKey, _
InheritanceFlags.ContainerInherit, _
PropagationFlags.None, _
AccessControlType.Allow)
mSec.AddAccessRule(rule)
' Create a rule that allows the current user only the
' right to query the key/value pairs of a key, using
' the same inheritance and propagation flags as the
' first rule. QueryValues is a constituent of
' ReadKey, so when this rule is removed, using the
' RemoveAccessRule method, ReadKey is broken into
' its constituent parts.
rule = New RegistryAccessRule(user, _
RegistryRights.QueryValues, _
InheritanceFlags.ContainerInherit, _
PropagationFlags.None, _
AccessControlType.Allow)
mSec.RemoveAccessRule(rule)
' Display the rules in the security object.
ShowSecurity(mSec)
' Add the second rule back. It merges with the
' existing rule, so that the rule is now displayed
' as ReadKey.
mSec.AddAccessRule(rule)
' Display the rules in the security object.
ShowSecurity(mSec)
End Sub
Private Shared Sub ShowSecurity(ByVal security As RegistrySecurity)
Console.WriteLine(vbCrLf & "Current access rules:" & vbCrLf)
For Each ar As RegistryAccessRule In _
security.GetAccessRules(True, True, GetType(NTAccount))
Console.WriteLine(" User: {0}", ar.IdentityReference)
Console.WriteLine(" Type: {0}", ar.AccessControlType)
Console.WriteLine(" Rights: {0}", ar.RegistryRights)
Console.WriteLine(" Inheritance: {0}", ar.InheritanceFlags)
Console.WriteLine(" Propagation: {0}", ar.PropagationFlags)
Console.WriteLine(" Inherited? {0}", ar.IsInherited)
Console.WriteLine()
Next
End Sub
End Class
'This code example produces output similar to following:
'
'Current access rules:
'
' User: TestDomain\TestUser
' Type: Allow
' Rights: EnumerateSubKeys, Notify, ReadPermissions
' Inheritance: ContainerInherit
' Propagation: None
' Inherited? False
'
'
'Current access rules:
'
' User: TestDomain\TestUser
' Type: Allow
' Rights: ReadKey
' Inheritance: ContainerInherit
' Propagation: None
' Inherited? False
'
Пример 2
В следующем примере кода показаны правила доступа с наследованием и распространением. В примере создается RegistrySecurity объект, а затем создаются и добавляются два правила с флагом ContainerInherit . Первое правило не имеет флагов распространения, в то время как второй имеет NoPropagateInherit и InheritOnly.
Программа отображает правила в объекте RegistrySecurity , а затем использует RegistrySecurity объект для создания подраздела. Программа создает дочерний подраздел и подраздел grandchild, а затем отображает безопасность для каждого подраздела. Наконец, программа удаляет тестовые ключи.
using System;
using System.Security.AccessControl;
using System.Security.Principal;
using System.Security;
using Microsoft.Win32;
public class Example
{
public static void Main()
{
const string TestKey = "TestKey3927";
RegistryKey cu = Registry.CurrentUser;
string user = Environment.UserDomainName +
"\\" + Environment.UserName;
// Create a security object that grants no access.
RegistrySecurity mSec = new RegistrySecurity();
// Add a rule that grants the current user the right
// to read and enumerate the name/value pairs in a key,
// to read its access and audit rules, to enumerate
// its subkeys, to create subkeys, and to delete the key.
// The rule is inherited by all contained subkeys.
//
RegistryAccessRule rule = new RegistryAccessRule(user,
RegistryRights.ReadKey | RegistryRights.WriteKey
| RegistryRights.Delete,
InheritanceFlags.ContainerInherit,
PropagationFlags.None,
AccessControlType.Allow
);
mSec.AddAccessRule(rule);
// Add a rule that allows the current user the right
// right to set the name/value pairs in a key.
// This rule is inherited by contained subkeys, but
// propagation flags limit it to immediate child
// subkeys.
rule = new RegistryAccessRule(user,
RegistryRights.ChangePermissions,
InheritanceFlags.ContainerInherit,
PropagationFlags.InheritOnly |
PropagationFlags.NoPropagateInherit,
AccessControlType.Allow);
mSec.AddAccessRule(rule);
// Display the rules in the security object.
ShowSecurity(mSec);
// Create the test key using the security object.
//
RegistryKey rk = cu.CreateSubKey(TestKey,
RegistryKeyPermissionCheck.ReadWriteSubTree, mSec);
// Create a child subkey and a grandchild subkey,
// without security.
RegistryKey rkChild = rk.CreateSubKey("ChildKey",
RegistryKeyPermissionCheck.ReadWriteSubTree);
RegistryKey rkGrandChild =
rkChild.CreateSubKey("GrandChildKey",
RegistryKeyPermissionCheck.ReadWriteSubTree);
Show(rk);
Show(rkChild);
Show(rkGrandChild);
rkGrandChild.Close();
rkChild.Close();
rk.Close();
cu.DeleteSubKeyTree(TestKey);
}
private static void Show(RegistryKey rk)
{
Console.WriteLine(rk.Name);
ShowSecurity(rk.GetAccessControl());
}
private static void ShowSecurity(RegistrySecurity security)
{
Console.WriteLine("\r\nCurrent access rules:\r\n");
foreach( RegistryAccessRule ar in security.GetAccessRules(true, true, typeof(NTAccount)) )
{
Console.WriteLine(" User: {0}", ar.IdentityReference);
Console.WriteLine(" Type: {0}", ar.AccessControlType);
Console.WriteLine(" Rights: {0}", ar.RegistryRights);
Console.WriteLine(" Inheritance: {0}", ar.InheritanceFlags);
Console.WriteLine(" Propagation: {0}", ar.PropagationFlags);
Console.WriteLine(" Inherited? {0}", ar.IsInherited);
Console.WriteLine();
}
}
}
/* This code example produces output similar to following:
Current access rules:
User: TestDomain\TestUser
Type: Allow
Rights: SetValue, CreateSubKey, Delete, ReadKey
Inheritance: ContainerInherit
Propagation: None
Inherited? False
User: TestDomain\TestUser
Type: Allow
Rights: ChangePermissions
Inheritance: ContainerInherit
Propagation: NoPropagateInherit, InheritOnly
Inherited? False
HKEY_CURRENT_USER\TestKey3927
Current access rules:
User: TestDomain\TestUser
Type: Allow
Rights: SetValue, CreateSubKey, Delete, ReadKey
Inheritance: ContainerInherit
Propagation: None
Inherited? False
User: TestDomain\TestUser
Type: Allow
Rights: ChangePermissions
Inheritance: ContainerInherit
Propagation: NoPropagateInherit, InheritOnly
Inherited? False
HKEY_CURRENT_USER\TestKey3927\ChildKey
Current access rules:
User: TestDomain\TestUser
Type: Allow
Rights: SetValue, CreateSubKey, Delete, ReadKey
Inheritance: ContainerInherit
Propagation: None
Inherited? True
User: TestDomain\TestUser
Type: Allow
Rights: ChangePermissions
Inheritance: None
Propagation: None
Inherited? True
HKEY_CURRENT_USER\TestKey3927\ChildKey\GrandChildKey
Current access rules:
User: TestDomain\TestUser
Type: Allow
Rights: SetValue, CreateSubKey, Delete, ReadKey
Inheritance: ContainerInherit
Propagation: None
Inherited? True
*/
Option Explicit
Imports System.Security.AccessControl
Imports System.Security.Principal
Imports System.Security
Imports Microsoft.Win32
Public Class Example
Public Shared Sub Main()
Const TestKey As String = "TestKey3927"
Dim cu As RegistryKey = Registry.CurrentUser
Dim user As String = Environment.UserDomainName _
& "\" & Environment.UserName
' Create a security object that grants no access.
Dim mSec As New RegistrySecurity()
' Add a rule that grants the current user the right
' to read and enumerate the name/value pairs in a key,
' to read its access and audit rules, to enumerate
' its subkeys, to create subkeys, and to delete the key.
' The rule is inherited by all contained subkeys.
'
Dim rule As New RegistryAccessRule(user, _
RegistryRights.ReadKey Or RegistryRights.WriteKey _
Or RegistryRights.Delete, _
InheritanceFlags.ContainerInherit, _
PropagationFlags.None, _
AccessControlType.Allow)
mSec.AddAccessRule(rule)
' Add a rule that allows the current user the right
' right to set the name/value pairs in a key.
' This rule is inherited by contained subkeys, but
' propagation flags limit it to immediate child
' subkeys.
rule = New RegistryAccessRule(user, _
RegistryRights.ChangePermissions, _
InheritanceFlags.ContainerInherit, _
PropagationFlags.InheritOnly Or PropagationFlags.NoPropagateInherit, _
AccessControlType.Allow)
mSec.AddAccessRule(rule)
' Display the rules in the security object.
ShowSecurity(mSec)
' Create the test key using the security object.
'
Dim rk As RegistryKey = cu.CreateSubKey(TestKey, _
RegistryKeyPermissionCheck.ReadWriteSubTree, _
mSec)
' Create a child subkey and a grandchild subkey,
' without security.
Dim rkChild As RegistryKey= rk.CreateSubKey("ChildKey", _
RegistryKeyPermissionCheck.ReadWriteSubTree)
Dim rkGrandChild As RegistryKey = _
rkChild.CreateSubKey("GrandChildKey", _
RegistryKeyPermissionCheck.ReadWriteSubTree)
Show(rk)
Show(rkChild)
Show(rkGrandChild)
rkGrandChild.Close()
rkChild.Close()
rk.Close()
cu.DeleteSubKeyTree(TestKey)
End Sub
Private Shared Sub Show(ByVal rk As RegistryKey)
Console.WriteLine(rk.Name)
ShowSecurity(rk.GetAccessControl())
End Sub
Private Shared Sub ShowSecurity(ByVal security As RegistrySecurity)
Console.WriteLine(vbCrLf & "Current access rules:" & vbCrLf)
For Each ar As RegistryAccessRule In _
security.GetAccessRules(True, True, GetType(NTAccount))
Console.WriteLine(" User: {0}", ar.IdentityReference)
Console.WriteLine(" Type: {0}", ar.AccessControlType)
Console.WriteLine(" Rights: {0}", ar.RegistryRights)
Console.WriteLine(" Inheritance: {0}", ar.InheritanceFlags)
Console.WriteLine(" Propagation: {0}", ar.PropagationFlags)
Console.WriteLine(" Inherited? {0}", ar.IsInherited)
Console.WriteLine()
Next
End Sub
End Class
'This code example produces output similar to following:
'
'Current access rules:
'
' User: TestDomain\TestUser
' Type: Allow
' Rights: SetValue, CreateSubKey, Delete, ReadKey
' Inheritance: ContainerInherit
' Propagation: None
' Inherited? False
'
' User: TestDomain\TestUser
' Type: Allow
' Rights: ChangePermissions
' Inheritance: ContainerInherit
' Propagation: NoPropagateInherit, InheritOnly
' Inherited? False
'
'HKEY_CURRENT_USER\TestKey3927
'
'Current access rules:
'
' User: TestDomain\TestUser
' Type: Allow
' Rights: SetValue, CreateSubKey, Delete, ReadKey
' Inheritance: ContainerInherit
' Propagation: None
' Inherited? False
'
' User: TestDomain\TestUser
' Type: Allow
' Rights: ChangePermissions
' Inheritance: ContainerInherit
' Propagation: NoPropagateInherit, InheritOnly
' Inherited? False
'
'HKEY_CURRENT_USER\TestKey3927\ChildKey
'
'Current access rules:
'
' User: TestDomain\TestUser
' Type: Allow
' Rights: SetValue, CreateSubKey, Delete, ReadKey
' Inheritance: ContainerInherit
' Propagation: None
' Inherited? True
'
' User: TestDomain\TestUser
' Type: Allow
' Rights: ChangePermissions
' Inheritance: None
' Propagation: None
' Inherited? True
'
'HKEY_CURRENT_USER\TestKey3927\ChildKey\GrandChildKey
'
'Current access rules:
'
' User: TestDomain\TestUser
' Type: Allow
' Rights: SetValue, CreateSubKey, Delete, ReadKey
' Inheritance: ContainerInherit
' Propagation: None
' Inherited? True
Комментарии
Объект RegistrySecurity указывает права доступа для раздела реестра, а также указывает способ аудита попыток доступа. Права доступа к разделу реестра выражаются в виде правил с каждым правилом доступа, представленным RegistryAccessRule объектом. Каждое правило аудита представлено RegistryAuditRule объектом.
Это отражает базовую систему безопасности Windows, в которой каждый защищаемый объект имеет по крайней мере один список управления доступом (DACL), который управляет доступом к защищенному объекту и по крайней мере один список системного контроля доступа (SACL), указывающий, какие попытки доступа проверяются. DaCL и SACL — это упорядоченные списки записей управления доступом (ACE), которые указывают доступ и аудит для пользователей и групп. Объект или RegistryAccessRule объект RegistryAuditRule может представлять несколько ACE.
Note
Windows безопасность управления доступом может применяться только к разделам реестра. Его нельзя применить к отдельным парам ключей и значений, хранящимся в ключе.
RegistrySecurityКлассы RegistryAccessRuleи RegistryAuditRule классы скрывают сведения о реализации списков управления доступом и службами управления доступом. Они позволяют игнорировать семнадцать различных типов ACE и сложность правильного поддержания наследования и распространения прав доступа. Эти объекты также предназначены для предотвращения следующих распространенных ошибок управления доступом:
Создание дескриптора безопасности с помощью null DACL. Пустая ссылка на DACL позволяет любому пользователю добавлять правила доступа к объекту, потенциально создавая атаку типа "отказ в обслуживании". Новый RegistrySecurity объект всегда начинается с пустого DACL, который запрещает всем пользователям доступ.
Нарушение канонического порядка acEs. Если список ACE в DACL не хранится в каноническом порядке, пользователи могут непреднамеренно получить доступ к защищенному объекту. Например, права на доступ отказано всегда должны отображаться до разрешенных прав доступа. RegistrySecurity объекты поддерживают правильный порядок внутри системы.
Управление флагами дескриптора безопасности, которые должны находиться только под контролем resource manager.
Создание недопустимых сочетаний флагов ACE.
Управление наследуемыми acEs. Наследование и распространение обрабатываются диспетчером ресурсов в ответ на изменения, внесенные в правила доступа и аудита.
Вставка бессмысленных acEs в списки управления доступом.
Единственными возможностями, не поддерживаемыми объектами безопасности .NET, являются опасные действия, которые следует избежать большинством разработчиков приложений, таких как:
Низкоуровневые задачи, которые обычно выполняются диспетчером ресурсов.
Добавление или удаление записей управления доступом таким образом, чтобы не поддерживать каноническое упорядочение.
Чтобы изменить безопасность управления доступом Windows для раздела реестра, используйте метод RegistryKey.GetAccessControl для получения объекта RegistrySecurity. Измените объект безопасности, добавив и удалив правила, а затем используйте метод для повторного RegistryKey.SetAccessControl его кэширования.
Important
Изменения, внесенные в RegistrySecurity объект, не влияют на уровни доступа раздела реестра, пока не вызовете RegistryKey.SetAccessControl метод, чтобы назначить измененный объект безопасности разделу реестра.
Чтобы скопировать безопасность управления доступом из одного раздела реестра в другой, используйте RegistryKey.GetAccessControl метод для получения RegistrySecurity объекта, представляющего правила доступа и аудита первого раздела реестра, а затем используйте RegistryKey.SetAccessControl метод, чтобы назначить эти правила второму разделу реестра. Вы также можете назначить правила второму разделу реестра с RegistryKey.OpenSubKey помощью метода RegistryKey.CreateSubKey или RegistrySecurity параметра объекта.
Пользователи с инвестициями в язык определения дескриптора безопасности (SDDL) могут использовать SetSecurityDescriptorSddlForm метод для задания правил доступа для раздела реестра и GetSecurityDescriptorSddlForm метода для получения строки, представляющей правила доступа в формате SDDL. Это не рекомендуется для новой разработки.
Конструкторы
| Имя | Описание |
|---|---|
| RegistrySecurity() |
Инициализирует новый экземпляр RegistrySecurity класса со значениями по умолчанию. |
Свойства
| Имя | Описание |
|---|---|
| AccessRightType |
Возвращает тип перечисления, который RegistrySecurity класс использует для представления прав доступа. |
| AccessRulesModified |
Возвращает или задает логическое значение, указывающее, были ли изменены правила доступа, связанные с этим ObjectSecurity объектом. (Унаследовано от ObjectSecurity) |
| AccessRuleType |
Возвращает тип, который RegistrySecurity класс использует для представления правил доступа. |
| AreAccessRulesCanonical |
Возвращает логическое значение, указывающее, находятся ли правила доступа, связанные с этим ObjectSecurity объектом, в каноническом порядке. (Унаследовано от ObjectSecurity) |
| AreAccessRulesProtected |
Возвращает логическое значение, указывающее, защищен ли список управления доступом (DACL), связанный с этим ObjectSecurity объектом. (Унаследовано от ObjectSecurity) |
| AreAuditRulesCanonical |
Возвращает логическое значение, указывающее, находятся ли правила аудита, связанные с этим ObjectSecurity объектом, в каноническом порядке. (Унаследовано от ObjectSecurity) |
| AreAuditRulesProtected |
Возвращает логическое значение, указывающее, защищен ли список управления доступом системы (SACL), связанный с этим ObjectSecurity объектом. (Унаследовано от ObjectSecurity) |
| AuditRulesModified |
Возвращает или задает логическое значение, указывающее, были ли изменены правила аудита, связанные с этим ObjectSecurity объектом. (Унаследовано от ObjectSecurity) |
| AuditRuleType |
Возвращает тип, который RegistrySecurity класс использует для представления правил аудита. |
| GroupModified |
Возвращает или задает логическое значение, указывающее, была ли изменена группа, связанная с защищаемым объектом. (Унаследовано от ObjectSecurity) |
| IsContainer |
Возвращает логическое значение, указывающее, является ли этот ObjectSecurity объект объектом контейнера. (Унаследовано от ObjectSecurity) |
| IsDS |
Возвращает логическое значение, указывающее, является ли этот ObjectSecurity объект объектом каталога. (Унаследовано от ObjectSecurity) |
| OwnerModified |
Возвращает или задает логическое значение, указывающее, был ли изменен владелец защищаемого объекта. (Унаследовано от ObjectSecurity) |
| SecurityDescriptor |
Возвращает дескриптор безопасности для этого экземпляра. (Унаследовано от ObjectSecurity) |
Методы
| Имя | Описание |
|---|---|
| AccessRuleFactory(IdentityReference, Int32, Boolean, InheritanceFlags, PropagationFlags, AccessControlType) |
Создает новое правило управления доступом для указанного пользователя с указанными правами доступа, контролем доступа и флагами. |
| AddAccessRule(AccessRule) |
Добавляет указанное правило доступа в список управления доступом (DACL), связанный с этим CommonObjectSecurity объектом. (Унаследовано от CommonObjectSecurity) |
| AddAccessRule(RegistryAccessRule) |
Ищет соответствующий контроль доступа, с которым можно объединить новое правило. Если нет, добавляет новое правило. |
| AddAuditRule(AuditRule) |
Добавляет указанное правило аудита в список управления доступом системы (SACL), связанный с этим CommonObjectSecurity объектом. (Унаследовано от CommonObjectSecurity) |
| AddAuditRule(RegistryAuditRule) |
Ищет правило аудита, с которым можно объединить новое правило. Если нет, добавляет новое правило. |
| AuditRuleFactory(IdentityReference, Int32, Boolean, InheritanceFlags, PropagationFlags, AuditFlags) |
Создает новое правило аудита, указывающее пользователя, к которому применяется правило, права доступа к аудиту, наследование и распространение правила, а также результат, который активирует правило. |
| 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, Object) |
Сохраняет указанные разделы дескриптора безопасности, связанного с этим NativeObjectSecurity объектом, в постоянное хранилище. Рекомендуется, чтобы значения параметров, |
| Persist(SafeHandle, AccessControlSections) |
Сохраняет указанные разделы дескриптора безопасности, связанного с этим NativeObjectSecurity объектом, в постоянное хранилище. Рекомендуется.сохранить значения параметров, переданных |
| Persist(String, AccessControlSections, Object) |
Сохраняет указанные разделы дескриптора безопасности, связанного с этим NativeObjectSecurity объектом, в постоянное хранилище. Рекомендуется, чтобы значения параметров, |
| Persist(String, AccessControlSections) |
Сохраняет указанные разделы дескриптора безопасности, связанного с этим NativeObjectSecurity объектом, в постоянное хранилище. Рекомендуется, чтобы значения параметров, |
| PurgeAccessRules(IdentityReference) |
Удаляет все правила доступа, связанные с указанным IdentityReference. (Унаследовано от ObjectSecurity) |
| PurgeAuditRules(IdentityReference) |
Удаляет все правила аудита, связанные с указанным IdentityReference. (Унаследовано от ObjectSecurity) |
| ReadLock() |
Блокирует этот ObjectSecurity объект для доступа на чтение. (Унаследовано от ObjectSecurity) |
| ReadUnlock() |
Разблокирует этот ObjectSecurity объект для доступа на чтение. (Унаследовано от ObjectSecurity) |
| RemoveAccessRule(AccessRule) |
Удаляет правила доступа, содержащие тот же идентификатор безопасности и маску доступа, что и указанное правило доступа из списка управления доступом (DACL), связанного с этим CommonObjectSecurity объектом. (Унаследовано от CommonObjectSecurity) |
| RemoveAccessRule(RegistryAccessRule) |
Ищет правило управления доступом с тем же пользователем и AccessControlType (разрешить или запретить), что и указанное правило доступа, а также с совместимыми флагами наследования и распространения; если такое правило найдено, права, содержащиеся в указанном правиле доступа, удаляются из него. |
| RemoveAccessRuleAll(AccessRule) |
Удаляет все правила доступа, имеющие тот же идентификатор безопасности, что и указанное правило доступа из списка управления доступом (DACL), связанного с этим CommonObjectSecurity объектом. (Унаследовано от CommonObjectSecurity) |
| RemoveAccessRuleAll(RegistryAccessRule) |
Выполняет поиск всех правил управления доступом с одинаковым пользователем и AccessControlType (разрешить или запретить) в качестве указанного правила, а при обнаружении удаляет их. |
| RemoveAccessRuleSpecific(AccessRule) |
Удаляет все правила доступа, которые точно соответствуют указанному правилу доступа из списка управления доступом (DACL), связанного с этим CommonObjectSecurity объектом. (Унаследовано от CommonObjectSecurity) |
| RemoveAccessRuleSpecific(RegistryAccessRule) |
Выполняет поиск правила управления доступом, точно соответствующего указанному правилу, и при обнаружении удаляет его. |
| RemoveAuditRule(AuditRule) |
Удаляет правила аудита, содержащие тот же идентификатор безопасности и маску доступа, что и указанное правило аудита из списка управления доступом системы (SACL), связанного с этим CommonObjectSecurity объектом. (Унаследовано от CommonObjectSecurity) |
| RemoveAuditRule(RegistryAuditRule) |
Ищет правило управления аудитом с тем же пользователем, что и указанное правило, и с совместимыми флагами наследования и распространения; При обнаружении совместимого правила права, содержащиеся в указанном правиле, удаляются из него. |
| RemoveAuditRuleAll(AuditRule) |
Удаляет все правила аудита, имеющие тот же идентификатор безопасности, что и указанное правило аудита из списка управления доступом системы (SACL), связанного с этим CommonObjectSecurity объектом. (Унаследовано от CommonObjectSecurity) |
| RemoveAuditRuleAll(RegistryAuditRule) |
Выполняет поиск всех правил аудита с тем же пользователем, что и указанное правило, и при обнаружении удаляет их. |
| RemoveAuditRuleSpecific(AuditRule) |
Удаляет все правила аудита, которые точно соответствуют указанному правилу аудита из списка управления доступом системы (SACL), связанного с этим CommonObjectSecurity объектом. (Унаследовано от CommonObjectSecurity) |
| RemoveAuditRuleSpecific(RegistryAuditRule) |
Выполняет поиск правила аудита, точно соответствующего указанному правилу, и при обнаружении удаляет его. |
| ResetAccessRule(AccessRule) |
Удаляет все правила доступа в списке управления доступом(DACL), связанном с этим CommonObjectSecurity объектом, а затем добавляет указанное правило доступа. (Унаследовано от CommonObjectSecurity) |
| ResetAccessRule(RegistryAccessRule) |
Удаляет все правила управления доступом с тем же пользователем, что и указанное правило, независимо от AccessControlTypeэтого, а затем добавляет указанное правило. |
| SetAccessRule(AccessRule) |
Удаляет все правила доступа, содержащие тот же идентификатор безопасности и квалификатор, что и указанное правило доступа в списке управления доступом (DACL), связанном с этим CommonObjectSecurity объектом, а затем добавляет указанное правило доступа. (Унаследовано от CommonObjectSecurity) |
| SetAccessRule(RegistryAccessRule) |
Удаляет все правила управления доступом с тем же пользователем и AccessControlType (разрешить или запретить), что и указанное правило, а затем добавляет указанное правило. |
| SetAccessRuleProtection(Boolean, Boolean) |
Задает или удаляет защиту правил доступа, связанных с этим ObjectSecurity объектом. Правила защищенного доступа нельзя изменить родительскими объектами с помощью наследования. (Унаследовано от ObjectSecurity) |
| SetAuditRule(AuditRule) |
Удаляет все правила аудита, содержащие тот же идентификатор безопасности и квалификатор, что и указанное правило аудита в списке управления доступом системы (SACL), связанном с этим CommonObjectSecurity объектом, а затем добавляет указанное правило аудита. (Унаследовано от CommonObjectSecurity) |
| SetAuditRule(RegistryAuditRule) |
Удаляет все правила аудита с тем же пользователем, что и указанное правило, независимо от AuditFlags значения, а затем добавляет указанное правило. |
| SetAuditRuleProtection(Boolean, Boolean) |
Задает или удаляет защиту правил аудита, связанных с этим ObjectSecurity объектом. Защищенные правила аудита нельзя изменить родительскими объектами с помощью наследования. (Унаследовано от ObjectSecurity) |
| SetGroup(IdentityReference) |
Задает основную группу для дескриптора безопасности, связанного с этим ObjectSecurity объектом. (Унаследовано от ObjectSecurity) |
| SetOwner(IdentityReference) |
Задает владельца дескриптора безопасности, связанного с этим ObjectSecurity объектом. (Унаследовано от ObjectSecurity) |
| SetSecurityDescriptorBinaryForm(Byte[], AccessControlSections) |
Задает указанные разделы дескриптора безопасности для этого ObjectSecurity объекта из указанного массива значений байтов. (Унаследовано от ObjectSecurity) |
| SetSecurityDescriptorBinaryForm(Byte[]) |
Задает дескриптор безопасности для этого ObjectSecurity объекта из указанного массива байтовых значений. (Унаследовано от ObjectSecurity) |
| SetSecurityDescriptorSddlForm(String, AccessControlSections) |
Задает указанные разделы дескриптора безопасности для этого ObjectSecurity объекта из указанной строки языка определения дескриптора безопасности (SDDL). (Унаследовано от ObjectSecurity) |
| SetSecurityDescriptorSddlForm(String) |
Задает дескриптор безопасности для этого ObjectSecurity объекта из указанной строки языка определения дескриптора безопасности (SDDL). (Унаследовано от ObjectSecurity) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
| WriteLock() |
Блокирует этот ObjectSecurity объект для доступа на запись. (Унаследовано от ObjectSecurity) |
| WriteUnlock() |
Разблокирует этот ObjectSecurity объект для доступа на запись. (Унаследовано от ObjectSecurity) |