Objektnamespaces
Ein Objektnamespace schützt benannte Objekte vor unbefugtem Zugriff. Durch das Erstellen eines privaten Namespaces können Anwendungen und Dienste eine sicherere Umgebung erstellen.
Ein Prozess kann einen privaten Namespace mithilfe der CreatePrivateNamespace--Funktion erstellen. Diese Funktion erfordert, dass Sie eine Grenze angeben, die definiert, wie die Objekte im Namespace isoliert werden sollen. Der Aufrufer muss innerhalb der angegebenen Grenze sein, damit der Erstellungsvorgang erfolgreich ausgeführt werden kann. Um eine Grenze anzugeben, verwenden Sie den CreateBoundaryDescriptor und AddSIDToBoundaryDescriptor- Funktionen.
Der lpAliasPrefix Parameter von CreatePrivateNamespace dient als Name des Namespaces. Jeder Namespace wird durch seinen Namen und seine Grenzen eindeutig identifiziert. Das System unterstützt mehrere private Namespaces mit demselben Namen, solange sie unterschiedliche Grenzen angeben.
Angenommen, ein Prozess fordert die Erstellung eines Namespaces an, NS1, der eine Grenze definiert, die zwei Elemente enthält: die Administrator-SID und die aktuelle Sitzungsnummer. Der Namespace wird erstellt, wenn der Prozess unter dem Administratorkonto in der angegebenen Sitzung ausgeführt wird. Ein anderer Prozess kann mithilfe der OpenPrivateNamespace--Funktion auf diesen Namespace zugreifen. Sowohl der angegebene Name als auch die Begrenzung müssen übereinstimmen, wenn dieser Prozess den vom ersten Prozess erstellten Namespace öffnen soll. Beachten Sie, dass ein Prozess einen vorhandenen Namespace öffnen kann, auch wenn er sich nicht innerhalb der Grenze befindet, es sei denn, der Ersteller hat den Zugriff auf den Namespace mit dem lpPrivateNamespaceAttributes Parameter eingeschränkt.
Die objekte, die in diesem Namespace erstellt werden, weisen Namen auf, die Präfix\Objektnamesind. Das Präfix ist der Namespacename, der durch den lpAliasPrefix Parameter von CreatePrivateNamespaceangegeben wird. Um beispielsweise ein Ereignisobjekt namens MyEvent im NS1-Namespace zu erstellen, rufen Sie die CreateEvent-Funktion auf, wobei der lpName Parameter auf NS1\MyEvent festgelegt ist.
Der Prozess, der den Namespace erstellt hat, kann die ClosePrivateNamespace--Funktion verwenden, um das Handle mit dem Namespace zu schließen. Das Handle wird auch geschlossen, wenn der Prozess, der den Namespace erstellt hat, beendet wird. Nachdem das Namespacehandle geschlossen wurde, schlagen nachfolgende Aufrufe von OpenPrivateNamespace fehl, aber alle Vorgänge für Objekte im Namespace sind erfolgreich.
Verwandte Themen