RegistrySecurity Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt die Windows Zugriffssteuerungssicherheit für einen Registrierungsschlüssel dar. Diese Klasse kann nicht vererbt werden.
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
- Vererbung
- Attribute
Beispiele
Dieser Abschnitt enthält zwei Codebeispiele. Das erste Beispiel zeigt, wie kompatible Regeln beim Hinzufügen und Entfernen zusammengeführt werden, und das zweite zeigt, wie Vererbungs- und Verteilungskennzeichnungen sich auf das Hinzufügen und Löschen von Regeln auswirken.
Beispiel 1
Das folgende Codebeispiel zeigt, wie die RemoveAccessRule Methode Rechte aus einer kompatiblen Regel entfernt und wie die AddAccessRule Methode Rechte mit kompatiblen Regeln zusammenführt.
Im Beispiel wird ein RegistrySecurity Objekt erstellt und eine Regel hinzugefügt, die die aktuellen Benutzerrechte RegistryRights.ReadKey zulässt. Anschließend wird eine Regel erstellt, die dem Benutzer RegistryRights.SetValuedie gleichen Vererbungs- und Verteilungsrechte wie die erste Regel gewährt und die RemoveAccessRule Methode verwendet, um diese neue Regel aus dem RegistrySecurity Objekt zu entfernen. SetValue ist ein Bestandteil von ReadKey, sodass er aus der kompatiblen Regel entfernt wird. Die Regeln im RegistrySecurity Objekt werden mit den verbleibenden Bestandteilen des ReadKeyObjekts angezeigt.
Der Beispielcode ruft dann die AddAccessRule Methode auf, um die SetValue Rechte wieder mit der Regel im RegistrySecurity Objekt zusammenzuführen.
Note
In diesem Beispiel wird das Sicherheitsobjekt nicht an ein RegistryKey Objekt angefügt. Im zweiten Beispiel in diesem Abschnitt wird ein Sicherheitsobjekt angefügt, und dies tun Sie die Beispiele in RegistryKey.GetAccessControl und 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
'
Beispiel 2
Im folgenden Codebeispiel werden Zugriffsregeln mit Vererbung und Verteilung veranschaulicht. Im Beispiel wird ein RegistrySecurity Objekt erstellt, anschließend werden zwei Regeln erstellt und hinzugefügt, die das ContainerInherit Kennzeichen aufweisen. Die erste Regel hat keine Verteilungskennzeichnungen, während die zweite hat NoPropagateInherit und .InheritOnly
Das Programm zeigt die Regeln im RegistrySecurity Objekt an und verwendet dann das RegistrySecurity Objekt, um einen Unterschlüssel zu erstellen. Das Programm erstellt einen untergeordneten Unterschlüssel und einen Enkelunterschlüssel und zeigt dann die Sicherheit für jeden Unterschlüssel an. Schließlich löscht das Programm die Testschlüssel.
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
Hinweise
Ein RegistrySecurity Objekt gibt Zugriffsrechte für einen Registrierungsschlüssel an und gibt auch an, wie Zugriffsversuche überwacht werden. Zugriffsrechte für den Registrierungsschlüssel werden als Regeln ausgedrückt, wobei jede Zugriffsregel durch ein RegistryAccessRule Objekt dargestellt wird. Jede Überwachungsregel wird durch ein RegistryAuditRule Objekt dargestellt.
Dadurch wird das zugrunde liegende Windows-Sicherheitssystem gespiegelt, in dem jedes sicherungsfähige Objekt über eine diskretionäre Zugriffssteuerungsliste (DACL) verfügt, die den Zugriff auf das gesicherte Objekt steuert, und höchstens eine SYSTEMzugriffssteuerungsliste (SACL), die angibt, welche Zugriffsversuche überwacht werden. Die DACL und SACL sind sortierte Listen mit Zugriffssteuerungseinträgen (Access Control Entries, ACE), die Zugriff und Überwachung für Benutzer und Gruppen angeben. Ein RegistryAccessRule oder RegistryAuditRule Objekt kann mehrere ACE darstellen.
Note
Windows Zugriffssteuerungssicherheit kann nur auf Registrierungsschlüssel angewendet werden. Sie kann nicht auf einzelne Schlüssel-Wert-Paare angewendet werden, die in einem Schlüssel gespeichert sind.
Die RegistrySecurity, RegistryAccessRuleund RegistryAuditRule Klassen blenden die Implementierungsdetails von ACLs und ACEs aus. Sie ermöglichen es Ihnen, die siebenzehn verschiedenen ACE-Typen und die Komplexität der ordnungsgemäßen Aufrechterhaltung der Vererbung und Weitergabe von Zugriffsrechten zu ignorieren. Diese Objekte sind auch so konzipiert, dass die folgenden allgemeinen Zugriffssteuerungsfehler vermieden werden:
Erstellen eines Sicherheitsdeskriptors mit einer NULL-DACL. Ein NULL-Verweis auf eine DACL ermöglicht jedem Benutzer das Hinzufügen von Zugriffsregeln zu einem Objekt, wodurch möglicherweise ein Denial-of-Service-Angriff erstellt wird. Ein neues RegistrySecurity Objekt beginnt immer mit einer leeren DACL, die allen Benutzern den Zugriff verweigert.
Verstoß gegen die kanonische Reihenfolge von ACEs. Wenn die ACE-Liste in der DACL nicht in der kanonischen Reihenfolge aufbewahrt wird, erhalten Benutzer versehentlich Zugriff auf das gesicherte Objekt. Beispielsweise müssen verweigerte Zugriffsrechte immer vor zulässigen Zugriffsrechten angezeigt werden. RegistrySecurity Objekte behalten die richtige Reihenfolge intern bei.
Bearbeiten von Sicherheitsbeschreibungskennzeichnungen, die nur unter der Kontrolle des Ressourcen-Managers stehen sollten.
Erstellen ungültiger Kombinationen von ACE-Flags.
Bearbeiten geerbter ACEs. Vererbung und Verteilung werden vom Ressourcen-Manager als Reaktion auf Änderungen behandelt, die Sie an Zugriffs- und Überwachungsregeln vornehmen.
Einfügen von bedeutungslosen ACEs in ACLs.
Die einzigen Funktionen, die von den .NET-Sicherheitsobjekten nicht unterstützt werden, sind gefährliche Aktivitäten, die von den meisten Anwendungsentwicklern vermieden werden sollten, z. B. die folgenden:
Vorgänge auf niedriger Ebene, die normalerweise vom Ressourcenmanager ausgeführt werden.
Hinzufügen oder Entfernen von Zugriffssteuerungseinträgen in einer Weise, die die kanonische Reihenfolge nicht beibehalten.
Verwenden Sie zum Ändern Windows Zugriffssteuerungssicherheit für einen Registrierungsschlüssel die methode RegistryKey.GetAccessControl, um das objekt RegistrySecurity abzurufen. Ändern Sie das Sicherheitsobjekt, indem Sie Regeln hinzufügen und entfernen, und verwenden Sie dann die RegistryKey.SetAccessControl Methode, um es erneut anzufügen.
Important
Änderungen, die Sie an einem RegistrySecurity Objekt vornehmen, wirken sich nicht auf die Zugriffsebenen des Registrierungsschlüssels aus, bis Sie die RegistryKey.SetAccessControl Methode aufrufen, um dem Registrierungsschlüssel das geänderte Sicherheitsobjekt zuzuweisen.
Um die Zugriffssteuerungssicherheit von einem Registrierungsschlüssel in einen anderen zu kopieren, verwenden Sie die RegistryKey.GetAccessControl Methode, um ein RegistrySecurity Objekt abzurufen, das die Zugriffs- und Überwachungsregeln für den ersten Registrierungsschlüssel darstellt, und verwenden Sie dann die RegistryKey.SetAccessControl Methode, um diese Regeln dem zweiten Registrierungsschlüssel zuzuweisen. Sie können die Regeln auch einem zweiten Registrierungsschlüssel mit einer RegistryKey.OpenSubKey oder RegistryKey.CreateSubKey methode zuweisen, die einen RegistrySecurity Objektparameter verwendet.
Benutzer mit einer Investition in die Sicherheitsdeskriptordefinitionssprache (SDDL) können die SetSecurityDescriptorSddlForm Methode verwenden, um Zugriffsregeln für einen Registrierungsschlüssel festzulegen, und die GetSecurityDescriptorSddlForm Methode zum Abrufen einer Zeichenfolge, die die Zugriffsregeln im SDDL-Format darstellt. Dies wird nicht für die neue Entwicklung empfohlen.
Konstruktoren
| Name | Beschreibung |
|---|---|
| RegistrySecurity() |
Initialisiert eine neue Instanz der RegistrySecurity Klasse mit Standardwerten. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| AccessRightType |
Ruft den Enumerationstyp ab, den die Klasse zum Darstellen von RegistrySecurity Zugriffsrechten verwendet. |
| AccessRulesModified |
Dient zum Abrufen oder Festlegen eines booleschen Werts, der angibt, ob die Zugriffsregeln, die diesem ObjectSecurity Objekt zugeordnet sind, geändert wurden. (Geerbt von ObjectSecurity) |
| AccessRuleType |
Ruft den Typ ab, den die RegistrySecurity Klasse zum Darstellen von Zugriffsregeln verwendet. |
| AreAccessRulesCanonical |
Ruft einen booleschen Wert ab, der angibt, ob die zugriffsregeln, die diesem ObjectSecurity Objekt zugeordnet sind, in kanonischer Reihenfolge sind. (Geerbt von ObjectSecurity) |
| AreAccessRulesProtected |
Ruft einen booleschen Wert ab, der angibt, ob die mit diesem ObjectSecurity Objekt verknüpfte DACL (Discretionary Access Control List) geschützt ist. (Geerbt von ObjectSecurity) |
| AreAuditRulesCanonical |
Ruft einen booleschen Wert ab, der angibt, ob die überwachungsregeln, die diesem ObjectSecurity Objekt zugeordnet sind, in kanonischer Reihenfolge sind. (Geerbt von ObjectSecurity) |
| AreAuditRulesProtected |
Ruft einen booleschen Wert ab, der angibt, ob die dem Objekt zugeordnete ObjectSecurity SYSTEM Access Control List (SACL) geschützt ist. (Geerbt von ObjectSecurity) |
| AuditRulesModified |
Dient zum Abrufen oder Festlegen eines booleschen Werts, der angibt, ob die Überwachungsregeln, die diesem ObjectSecurity Objekt zugeordnet sind, geändert wurden. (Geerbt von ObjectSecurity) |
| AuditRuleType |
Ruft den Typ ab, den die Klasse zum Darstellen von RegistrySecurity Überwachungsregeln verwendet. |
| GroupModified |
Dient zum Abrufen oder Festlegen eines booleschen Werts, der angibt, ob die Gruppe, die dem sicherungsfähigen Objekt zugeordnet ist, geändert wurde. (Geerbt von ObjectSecurity) |
| IsContainer |
Ruft einen booleschen Wert ab, der angibt, ob es sich bei diesem ObjectSecurity Objekt um ein Containerobjekt handelt. (Geerbt von ObjectSecurity) |
| IsDS |
Ruft einen booleschen Wert ab, der angibt, ob es sich bei diesem ObjectSecurity Objekt um ein Verzeichnisobjekt handelt. (Geerbt von ObjectSecurity) |
| OwnerModified |
Dient zum Abrufen oder Festlegen eines booleschen Werts, der angibt, ob der Besitzer des sicherungsfähigen Objekts geändert wurde. (Geerbt von ObjectSecurity) |
| SecurityDescriptor |
Ruft den Sicherheitsdeskriptor für diese Instanz ab. (Geerbt von ObjectSecurity) |
Methoden
| Name | Beschreibung |
|---|---|
| AccessRuleFactory(IdentityReference, Int32, Boolean, InheritanceFlags, PropagationFlags, AccessControlType) |
Erstellt eine neue Zugriffssteuerungsregel für den angegebenen Benutzer mit den angegebenen Zugriffsrechten, Zugriffssteuerungen und Flags. |
| AddAccessRule(AccessRule) |
Fügt die angegebene Zugriffsregel der diesem Objekt zugeordneten Diskretionäre Zugriffssteuerungsliste (DACL) hinzu CommonObjectSecurity . (Geerbt von CommonObjectSecurity) |
| AddAccessRule(RegistryAccessRule) |
Sucht nach einer übereinstimmenden Zugriffssteuerung, mit der die neue Regel zusammengeführt werden kann. Wenn keine gefunden wird, wird die neue Regel hinzugefügt. |
| AddAuditRule(AuditRule) |
Fügt der diesem Objekt zugeordneten Systemzugriffssteuerungsliste (SACL) die angegebene Überwachungsregel hinzu CommonObjectSecurity . (Geerbt von CommonObjectSecurity) |
| AddAuditRule(RegistryAuditRule) |
Sucht nach einer Überwachungsregel, mit der die neue Regel zusammengeführt werden kann. Wenn keine gefunden wird, wird die neue Regel hinzugefügt. |
| AuditRuleFactory(IdentityReference, Int32, Boolean, InheritanceFlags, PropagationFlags, AuditFlags) |
Erstellt eine neue Überwachungsregel, die den Benutzer angibt, für den die Regel gilt, die Zugriffsrechte für die Überwachung, die Vererbung und Verteilung der Regel sowie das Ergebnis, das die Regel auslöst. |
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetAccessRules(Boolean, Boolean, Type) |
Ruft eine Auflistung der Zugriffsregeln ab, die dem angegebenen Sicherheitsbezeichner zugeordnet sind. (Geerbt von CommonObjectSecurity) |
| GetAuditRules(Boolean, Boolean, Type) |
Ruft eine Auflistung der Überwachungsregeln ab, die dem angegebenen Sicherheitsbezeichner zugeordnet sind. (Geerbt von CommonObjectSecurity) |
| GetGroup(Type) |
Ruft die primäre Gruppe ab, die dem angegebenen Besitzer zugeordnet ist. (Geerbt von ObjectSecurity) |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetOwner(Type) |
Ruft den Besitzer ab, der der angegebenen primären Gruppe zugeordnet ist. (Geerbt von ObjectSecurity) |
| GetSecurityDescriptorBinaryForm() |
Gibt ein Array von Bytewerten zurück, das die Sicherheitsbeschreibungsinformationen für dieses ObjectSecurity Objekt darstellt. (Geerbt von ObjectSecurity) |
| GetSecurityDescriptorSddlForm(AccessControlSections) |
Gibt die SDDL-Darstellung (Security Descriptor Definition Language) der angegebenen Abschnitte des Sicherheitsdeskriptors zurück, der diesem ObjectSecurity Objekt zugeordnet ist. (Geerbt von ObjectSecurity) |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| ModifyAccess(AccessControlModification, AccessRule, Boolean) |
Wendet die angegebene Änderung auf die mit diesem CommonObjectSecurity Objekt verknüpfte Diskretionäre Zugriffssteuerungsliste (DACL) an. (Geerbt von CommonObjectSecurity) |
| ModifyAccessRule(AccessControlModification, AccessRule, Boolean) |
Wendet die angegebene Änderung auf die mit diesem ObjectSecurity Objekt verknüpfte Diskretionäre Zugriffssteuerungsliste (DACL) an. (Geerbt von ObjectSecurity) |
| ModifyAudit(AccessControlModification, AuditRule, Boolean) |
Wendet die angegebene Änderung auf die sacL (System Access Control List) an, die diesem CommonObjectSecurity Objekt zugeordnet ist. (Geerbt von CommonObjectSecurity) |
| ModifyAuditRule(AccessControlModification, AuditRule, Boolean) |
Wendet die angegebene Änderung auf die sacL (System Access Control List) an, die diesem ObjectSecurity Objekt zugeordnet ist. (Geerbt von ObjectSecurity) |
| Persist(Boolean, String, AccessControlSections) |
Speichert die angegebenen Abschnitte des Sicherheitsdeskriptors, der diesem ObjectSecurity Objekt zugeordnet ist, im permanenten Speicher. Es wird empfohlen, dass die Werte der |
| Persist(SafeHandle, AccessControlSections, Object) |
Speichert die angegebenen Abschnitte des Sicherheitsdeskriptors, der diesem NativeObjectSecurity Objekt zugeordnet ist, im permanenten Speicher. Es wird empfohlen, dass die Werte der |
| Persist(SafeHandle, AccessControlSections) |
Speichert die angegebenen Abschnitte des Sicherheitsdeskriptors, der diesem NativeObjectSecurity Objekt zugeordnet ist, im permanenten Speicher. Es wird empfohlen.persistieren, dass die Werte der |
| Persist(String, AccessControlSections, Object) |
Speichert die angegebenen Abschnitte des Sicherheitsdeskriptors, der diesem NativeObjectSecurity Objekt zugeordnet ist, im permanenten Speicher. Es wird empfohlen, dass die Werte der |
| Persist(String, AccessControlSections) |
Speichert die angegebenen Abschnitte des Sicherheitsdeskriptors, der diesem NativeObjectSecurity Objekt zugeordnet ist, im permanenten Speicher. Es wird empfohlen, dass die Werte der |
| PurgeAccessRules(IdentityReference) |
Entfernt alle Zugriffsregeln, die dem angegebenen Zugeordnet IdentityReferencesind. (Geerbt von ObjectSecurity) |
| PurgeAuditRules(IdentityReference) |
Entfernt alle Überwachungsregeln, die dem angegebenen IdentityReferenceZugeordnet sind. (Geerbt von ObjectSecurity) |
| ReadLock() |
Sperrt dieses ObjectSecurity Objekt für den Lesezugriff. (Geerbt von ObjectSecurity) |
| ReadUnlock() |
Sperrt dieses ObjectSecurity Objekt für den Lesezugriff. (Geerbt von ObjectSecurity) |
| RemoveAccessRule(AccessRule) |
Entfernt Zugriffsregeln, die denselben Sicherheitsbezeichner und dieselbe Zugriffsmaske wie die angegebene Zugriffsregel aus der diesem CommonObjectSecurity Objekt zugeordneten DaCL (Discretionary Access Control List) enthalten. (Geerbt von CommonObjectSecurity) |
| RemoveAccessRule(RegistryAccessRule) |
Sucht nach einer Zugriffssteuerungsregel mit demselben Benutzer und AccessControlType (zulassen oder verweigern) wie die angegebene Zugriffsregel und mit kompatiblen Vererbungs- und Verteilungsflags. Wenn eine solche Regel gefunden wird, werden die in der angegebenen Zugriffsregel enthaltenen Rechte daraus entfernt. |
| RemoveAccessRuleAll(AccessRule) |
Entfernt alle Zugriffsregeln, die denselben Sicherheitsbezeichner wie die angegebene Zugriffsregel aufweisen, aus der diesem CommonObjectSecurity Objekt zugeordneten Diskretionäre Zugriffssteuerungsliste (DACL). (Geerbt von CommonObjectSecurity) |
| RemoveAccessRuleAll(RegistryAccessRule) |
Sucht nach allen Zugriffssteuerungsregeln mit demselben Benutzer und AccessControlType (zulassen oder verweigern) wie die angegebene Regel und entfernt sie, falls gefunden,. |
| RemoveAccessRuleSpecific(AccessRule) |
Entfernt alle Zugriffsregeln, die exakt mit der angegebenen Zugriffsregel aus der mit diesem CommonObjectSecurity Objekt verknüpften Diskretionär-Zugriffssteuerungsliste (DACL) übereinstimmen. (Geerbt von CommonObjectSecurity) |
| RemoveAccessRuleSpecific(RegistryAccessRule) |
Sucht nach einer Zugriffssteuerungsregel, die exakt der angegebenen Regel entspricht, und entfernt sie, falls gefunden,. |
| RemoveAuditRule(AuditRule) |
Entfernt Überwachungsregeln, die denselben Sicherheitsbezeichner und dieselbe Zugriffsmaske wie die angegebene Überwachungsregel aus der diesem Objekt zugeordneten CommonObjectSecurity SYSTEMzugriffssteuerungsliste (SACL) enthalten. (Geerbt von CommonObjectSecurity) |
| RemoveAuditRule(RegistryAuditRule) |
Sucht nach einer Überwachungssteuerelementregel mit demselben Benutzer wie die angegebene Regel und mit kompatiblen Vererbungs- und Verteilungskennzeichnungen; wenn eine kompatible Regel gefunden wird, werden die in der angegebenen Regel enthaltenen Rechte daraus entfernt. |
| RemoveAuditRuleAll(AuditRule) |
Entfernt alle Überwachungsregeln mit demselben Sicherheitsbezeichner wie die angegebene Überwachungsregel aus der sacL (System Access Control List), die diesem CommonObjectSecurity Objekt zugeordnet ist. (Geerbt von CommonObjectSecurity) |
| RemoveAuditRuleAll(RegistryAuditRule) |
Sucht nach allen Überwachungsregeln mit demselben Benutzer wie die angegebene Regel und entfernt sie, falls gefunden,. |
| RemoveAuditRuleSpecific(AuditRule) |
Entfernt alle Überwachungsregeln, die exakt der angegebenen Überwachungsregel aus der systemzugriffskontrollliste (SYSTEM Access Control List, SACL) entsprechen, die diesem CommonObjectSecurity Objekt zugeordnet ist. (Geerbt von CommonObjectSecurity) |
| RemoveAuditRuleSpecific(RegistryAuditRule) |
Sucht nach einer Überwachungsregel, die exakt der angegebenen Regel entspricht, und entfernt sie, falls gefunden,. |
| ResetAccessRule(AccessRule) |
Entfernt alle Zugriffsregeln in der mit diesem CommonObjectSecurity Objekt verknüpften DACL (Discretionary Access Control List) und fügt dann die angegebene Zugriffsregel hinzu. (Geerbt von CommonObjectSecurity) |
| ResetAccessRule(RegistryAccessRule) |
Entfernt alle Zugriffssteuerungsregeln mit demselben Benutzer wie die angegebene Regel, unabhängig davon AccessControlType, und fügt dann die angegebene Regel hinzu. |
| SetAccessRule(AccessRule) |
Entfernt alle Zugriffsregeln, die denselben Sicherheitsbezeichner und Qualifizierer wie die angegebene Zugriffsregel in der diesem CommonObjectSecurity Objekt zugeordneten DACL (Discretionary Access Control List) enthalten, und fügt dann die angegebene Zugriffsregel hinzu. (Geerbt von CommonObjectSecurity) |
| SetAccessRule(RegistryAccessRule) |
Entfernt alle Zugriffssteuerungsregeln mit demselben Benutzer und AccessControlType (zulassen oder verweigern) wie die angegebene Regel, und fügt dann die angegebene Regel hinzu. |
| SetAccessRuleProtection(Boolean, Boolean) |
Legt fest oder entfernt den Schutz der Zugriffsregeln, die diesem ObjectSecurity Objekt zugeordnet sind. Geschützte Zugriffsregeln können nicht durch Vererbung von übergeordneten Objekten geändert werden. (Geerbt von ObjectSecurity) |
| SetAuditRule(AuditRule) |
Entfernt alle Überwachungsregeln, die denselben Sicherheitsbezeichner und Qualifizierer wie die angegebene Überwachungsregel in der sacL (System Access Control List) enthalten, die diesem CommonObjectSecurity Objekt zugeordnet ist, und fügt dann die angegebene Überwachungsregel hinzu. (Geerbt von CommonObjectSecurity) |
| SetAuditRule(RegistryAuditRule) |
Entfernt alle Überwachungsregeln mit demselben Benutzer wie die angegebene Regel, unabhängig vom AuditFlags Wert, und fügt dann die angegebene Regel hinzu. |
| SetAuditRuleProtection(Boolean, Boolean) |
Legt den Schutz der Überwachungsregeln fest oder entfernt sie, die diesem ObjectSecurity Objekt zugeordnet sind. Geschützte Überwachungsregeln können nicht durch vererbung von übergeordneten Objekten geändert werden. (Geerbt von ObjectSecurity) |
| SetGroup(IdentityReference) |
Legt die primäre Gruppe für den Sicherheitsdeskriptor fest, der diesem ObjectSecurity Objekt zugeordnet ist. (Geerbt von ObjectSecurity) |
| SetOwner(IdentityReference) |
Legt den Besitzer für den Sicherheitsdeskriptor fest, der diesem ObjectSecurity Objekt zugeordnet ist. (Geerbt von ObjectSecurity) |
| SetSecurityDescriptorBinaryForm(Byte[], AccessControlSections) |
Legt die angegebenen Abschnitte des Sicherheitsdeskriptors für dieses ObjectSecurity Objekt aus dem angegebenen Array von Bytewerten fest. (Geerbt von ObjectSecurity) |
| SetSecurityDescriptorBinaryForm(Byte[]) |
Legt den Sicherheitsdeskriptor für dieses ObjectSecurity Objekt aus dem angegebenen Array von Bytewerten fest. (Geerbt von ObjectSecurity) |
| SetSecurityDescriptorSddlForm(String, AccessControlSections) |
Legt die angegebenen Abschnitte des Sicherheitsdeskriptors für dieses ObjectSecurity Objekt aus der angegebenen SDDL-Zeichenfolge (Security Descriptor Definition Language) fest. (Geerbt von ObjectSecurity) |
| SetSecurityDescriptorSddlForm(String) |
Legt den Sicherheitsdeskriptor für dieses ObjectSecurity Objekt aus der angegebenen SDDL-Zeichenfolge (Security Descriptor Definition Language) fest. (Geerbt von ObjectSecurity) |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
| WriteLock() |
Sperrt dieses ObjectSecurity Objekt für den Schreibzugriff. (Geerbt von ObjectSecurity) |
| WriteUnlock() |
Sperrt dieses ObjectSecurity Objekt für den Schreibzugriff. (Geerbt von ObjectSecurity) |