DsInheritSecurityIdentityA-Funktion (ntdsapi.h)
Die DsInheritSecurityIdentity-Funktion fügt die Attribute objectSid und sidHistory von SrcPrincipal an die sidHistory von DstPrincipal an und löscht dann SrcPrincipal, alles in einer einzigen Transaktion. Um sicherzustellen, dass dieser Vorgang atomar ist, müssen sich SrcPrincipal und DstPrincipal in derselben Domäne befinden, und hDS müssen an einen Domänencontroller gebunden sein, der die richtigen Berechtigungen innerhalb dieser Domäne hat.
Syntax
NTDSAPI DWORD DsInheritSecurityIdentityA(
[in] HANDLE hDS,
[in] DWORD Flags,
[in] LPCSTR SrcPrincipal,
[in] LPCSTR DstPrincipal
);
Parameter
[in] hDS
Enthält ein Verzeichnisdiensthandle, das von der FUNKTION DSBind oder DSBindWithCred abgerufen wurde.
[in] Flags
Für die zukünftige Verwendung reserviert. Muss Null sein.
[in] SrcPrincipal
Zeiger auf eine NULL-beendete Zeichenfolge, die den Namen eines Sicherheitsprinzipals (Benutzer oder Gruppe) in der Quelldomäne angibt. Dieser Name ist ein domänenrelativer SAM-Name.
[in] DstPrincipal
Zeiger auf eine NULL-beendete Zeichenfolge, die den Namen eines Sicherheitsprinzipals (Benutzer oder Gruppe) in der Zieldomäne angibt. Dieser domänenrelative SAM-Name identifiziert den Prinzipal, dessen sidHistory-Attribut mit der SID von SrcPrincipal aktualisiert wird.
Rückgabewert
Gibt einen System- oder RPC-Fehlercode wie folgt zurück.
Hinweise
Bei einem Betriebssystemupgrade verfügen Domänenanwendungen, die sowohl aktualisierte als auch nicht aktualisierte Domänen umfassen, möglicherweise Sicherheitsprinzipale innerhalb und außerhalb der Gesamtstruktur für dieselbe logische Entität zur gleichen Zeit.
Wenn alle aktualisierten Domänen derselben Gesamtstruktur beigetreten sind, beseitigt DsInheritSecurityIdentity die doppelten Objekte und stellt gleichzeitig sicher, dass die verbleibenden Objekte über alle Sicherheitsrechte und Berechtigungen verfügen, die zu ihrem jeweiligen gelöschten Objekt gehören.
Eine DsInheritSecurityIdentity-Implementierung :
- Überprüft, ob sich SrcPrincipal und DstPrincipal in derselben Domäne befinden.
- Überprüft, ob die Domäne an der Bindung an den Server beschreibbar ist.
- Überprüft, ob die Überwachung für die Domäne aktiviert ist.
- Überprüft, ob der Aufrufer Mitglied der Domänenadministratoren für die Domäne ist.
- Überprüft, ob sich die Domäne im einheitlichen Modus befindet.
- Überprüft, ob SrcPrincipal vorhanden ist, dass es ein Sicherheitsprinzipal ist und die Eigenschaften objectSid und sidHistory gelesen hat.
- Überprüft, ob DstPrincipal vorhanden ist, ob es ein Sicherheitsprinzipal ist und bestimmte Eigenschaften gelesen hat, die für die Überwachung und Überprüfung erforderlich sind.
- Löscht SrcPrincipal in der Datenbank nur, wenn der gesamte Vorgang bei Abschluss committet wird. Dieser Vorgang schlägt fehl, wenn der Aufrufer nicht über Löschrechte verfügt oder SrcPrincipal über untergeordnete Elemente verfügt.
- Schlägt den Vorgang fehl, wenn die objectSid von SrcPrincipal oder DstPrincipal eine bekannte SID ist.
- Fügt die objectSid und die sidHistory (falls vorhanden) von SrcPrincipal der sidHistory von DstPrincipal hinzu.
- Erzwingt ein Überwachungsereignis und schlägt den Vorgang fehl, wenn die Überwachung fehlschlägt.
- Gibt Ereignisse in das Verzeichnisdienstprotokoll ein. Verwechseln Sie dies nicht mit dem Sicherheitsüberwachungsprotokoll.
Hinweis
Der ntdsapi.h-Header definiert DsInheritSecurityIdentity als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit nicht codierungsneutralem Code kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista |
Unterstützte Mindestversion (Server) | Windows Server 2008 |
Zielplattform | Windows |
Kopfzeile | ntdsapi.h |
Bibliothek | Ntdsapi.lib |
DLL | Ntdsapi.dll |