LookupAccountSidA-Funktion (winbase.h)
Die LookupAccountSid--Funktion akzeptiert eine Sicherheits-ID (SID) als Eingabe. Er ruft den Namen des Kontos für diese SID und den Namen der ersten Domäne ab, in der diese SID gefunden wird.
Syntax
BOOL LookupAccountSidA(
[in, optional] LPCSTR lpSystemName,
[in] PSID Sid,
[out, optional] LPSTR Name,
[in, out] LPDWORD cchName,
[out, optional] LPSTR ReferencedDomainName,
[in, out] LPDWORD cchReferencedDomainName,
[out] PSID_NAME_USE peUse
);
Parameter
[in, optional] lpSystemName
Ein Zeiger auf eine NULL--terminated-Zeichenfolge, die den Zielcomputer angibt. Diese Zeichenfolge kann der Name eines Remotecomputers sein. Wenn dieser Parameter NULL-ist, beginnt die Kontonamenübersetzung im lokalen System. Wenn der Name im lokalen System nicht aufgelöst werden kann, versucht diese Funktion, den Namen mithilfe von Domänencontrollern aufzulösen, die vom lokalen System vertrauenswürdig sind. Geben Sie im Allgemeinen einen Wert für lpSystemName nur an, wenn sich das Konto in einer nicht vertrauenswürdigen Domäne befindet und der Name eines Computers in dieser Domäne bekannt ist.
[in] Sid
Ein Zeiger auf die SID, um nachzuschlagen.
[out, optional] Name
Ein Zeiger auf einen Puffer, der eine NULL--terminated-Zeichenfolge empfängt, die den Kontonamen enthält, der dem parameter lpSid entspricht.
[in, out] cchName
Gibt bei eingaben die Größe des lpName Puffers in TCHAR-s an. Wenn die Funktion fehlschlägt, weil der Puffer zu klein ist oder cchName null ist, empfängt cchName die erforderliche Puffergröße, einschließlich des endierenden Null- Zeichens.
[out, optional] ReferencedDomainName
Ein Zeiger auf einen Puffer, der eine NULL--terminated-Zeichenfolge empfängt, die den Namen der Domäne enthält, in der der Kontoname gefunden wurde.
Auf einem Server ist der für die meisten Konten in der Sicherheitsdatenbank des lokalen Computers zurückgegebene Domänenname der Name der Domäne, für die der Server ein Domänencontroller ist.
Auf einer Arbeitsstation ist der für die meisten Konten in der Sicherheitsdatenbank des lokalen Computers zurückgegebene Domänenname der Name des Computers ab dem letzten Start des Systems (umgekehrte Schrägstriche sind ausgeschlossen). Wenn sich der Name des Computers ändert, wird der alte Name weiterhin als Domänenname zurückgegeben, bis das System neu gestartet wird.
Einige Konten sind vom System vordefiniert. Der für diese Konten zurückgegebene Domänenname ist BUILTIN.
[in, out] cchReferencedDomainName
Gibt bei Eingaben die Größe des lpReferencedDomainName Puffers in TCHAR-s an. Wenn die Funktion fehlschlägt, da der Puffer zu klein ist oder cchReferencedDomainName null ist, erhält cchReferencedDomainName die erforderliche Puffergröße, einschließlich des Endens Null- Zeichens.
[out] peUse
Ein Zeiger auf eine Variable, die einen SID_NAME_USE Wert empfängt, der den Typ des Kontos angibt.
Rückgabewert
Wenn die Funktion erfolgreich ist, gibt die Funktion "nonzero" zurück.
Wenn die Funktion fehlschlägt, wird null zurückgegeben. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.
Bemerkungen
Die LookupAccountSid Funktion versucht, einen Namen für die angegebene SID zu finden, indem zuerst eine Liste bekannter SIDs überprüft wird. Wenn die angegebene SID keiner bekannten SID entspricht, überprüft die Funktion integrierte und administrativ definierte lokale Konten. Als Nächstes überprüft die Funktion die primäre Domäne. Sicherheits-IDs, die von der primären Domäne nicht erkannt werden, werden anhand der vertrauenswürdigen Domänen überprüft, die ihren SID-Präfixen entsprechen.
Wenn die Funktion keinen Kontonamen für die SID finden kann, gibt GetLastError- ERROR_NONE_MAPPED zurück. Dies kann auftreten, wenn ein Netzwerktimeout verhindert, dass die Funktion den Namen findet. Sie tritt auch für SIDs auf, die keinen entsprechenden Kontonamen haben, z. B. eine Anmelde-SID-, die eine Anmeldesitzungidentifiziert.
Neben dem Nachschlagen von SIDs für lokale Konten, lokalen Domänenkonten und explizit vertrauenswürdigen Domänenkonten können LookupAccountSid- SIDs für jedes Konto in jeder Domäne in der Gesamtstruktur nachschlagen, einschließlich SIDs, die nur im SIDhistory-Feld eines Kontos in der Gesamtstruktur angezeigt werden. Das SIDhistory-Feld speichert frühere SIDs eines Kontos, das aus einer anderen Domäne verschoben wurde. Um eine SID nachzuschlagen, fragt LookupAccountSid den globalen Katalog der Gesamtstruktur ab.
Beispiele
Ein Beispiel, das diese Funktion verwendet, finden Sie unter Suchen nach einer SID in einem Zugriffstoken-.
Anmerkung
Der winbase.h-Header definiert LookupAccountSid 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 Code, der nicht codierungsneutral ist, 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 |
---|---|
mindestens unterstützte Client- | Windows XP [Desktop-Apps | UWP-Apps] |
mindestens unterstützte Server- | Windows Server 2003 [Desktop-Apps | UWP-Apps] |
Zielplattform- | Fenster |
Header- | winbase.h (enthalten Windows.h) |
Library | Advapi32.lib |
DLL- | Advapi32.dll |
Siehe auch
Übersicht über die Zugriffssteuerung