IAzApplication::InitializeClientContextFromStringSid-Methode (azroles.h)

Die InitializeClientContextFromStringSid-Methode ruft einen IAzClientContext-Objektzeiger aus der angegebenen Sicherheits-ID (SID) in Textform ab.

Hinweis Rufen Sie nach Möglichkeit die InitializeClientContextFromToken-Funktion anstelle von InitializeClientContextFromStringSid auf. Weitere Informationen finden Sie in den Hinweisen.

 

Syntax

HRESULT InitializeClientContextFromStringSid(
  [in]           BSTR             SidString,
  [in]           LONG             lOptions,
  [in, optional] VARIANT          varReserved,
  [out]          IAzClientContext **ppClientContext
);

Parameter

[in] SidString

Eine Zeichenfolge, die die Textform der SID des Sicherheitsprinzipals enthält. Dies muss eine gültige Zeichenfolgen-SID sein, die von der ConvertStringSidToSid-Funktion konvertiert werden kann.

[in] lOptions

Optionen für die Kontexterstellung.

Wenn AZ_CLIENT_CONTEXT_SKIP_GROUP angegeben ist, ist die im SidString-Parameter angegebene SID nicht unbedingt ein gültiges Benutzerkonto. Die SID wird verwendet, um den Kontext ohne Validierung zu erstellen. Der erstellte Kontext wird als aus einer SID erstellt gekennzeichnet, die SID-Zeichenfolge wird im Feld Clientname gespeichert, und das Feld domänenname ist leer. Tokengruppen werden bei der Clientkontexterstellung nicht verwendet. LDAP-Abfragegruppen (Lightweight Directory Access Protocol) werden nicht unterstützt, wenn AZ_CLIENT_CONTEXT_SKIP_GROUP angegeben wird. Da das Konto in Active Directory nicht überprüft wird, sind die Benutzerinformationseigenschaften des Clientkontexts, z. B . UserSamCompat, ungültig, und wenn darauf zugegriffen wird, geben sie ERROR_INVALID_HANDLE zurück. Die RoleForAccessCheck-Eigenschaft und die AccessCheck-Methode von IAzClientContext können weiterhin verwendet werden, um eine Rolle für die Zugriffsüberprüfung anzugeben. Die GetRoles-Methode von IAzClientContext kann weiterhin verwendet werden, um Rollen aufzulisten, die dem Kontext innerhalb eines bestimmten Bereichs zugewiesen sind.

Wenn AZ_CLIENT_CONTEXT_SKIP_GROUP nicht angegeben ist, muss die SID ein gültiges Benutzerkonto darstellen.

[in, optional] varReserved

Für die zukünftige Verwendung reserviert. Dieser Parameter kann einer der folgenden Werte sein:

  • varReserved.vt == VT_ERROR und varReserved.scode == DISP_E_PARAMNOTFOUND
  • varReserved.vt == VT_EMPTY
  • varReserved.vt == VT_NULL
  • varReserved.vt == VT_I4 und varReserved.lVal == 0
  • varReserved.vt == VT_I2 und varReserved.iVal == 0

[out] ppClientContext

Ein Zeiger auf einen Zeiger auf das zurückgegebene IAzClientContext-Objekt .

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt die Funktion S_OK zurück.

Wenn die Funktion fehlschlägt, wird ein HRESULT-Wert zurückgegeben, der den Fehler angibt. Eine Liste allgemeiner Fehlercodes finden Sie unter Allgemeine HRESULT-Werte.

Hinweise

Rufen Sie nach Möglichkeit die InitializeClientContextFromToken-Funktion anstelle von InitializeClientContextFromStringSid auf. InitializeClientContextFromStringSid versucht, die in einem Anmeldetoken verfügbaren Informationen abzurufen, wenn der Client tatsächlich angemeldet war. Ein tatsächliches Anmeldetoken bietet weitere Informationen, z. B. Anmeldetyp und Anmeldeeigenschaften, und spiegelt das Verhalten des für die Anmeldung verwendeten Authentifizierungspakets wider. Der von InitializeClientContextFromToken erstellte Clientkontext verwendet ein Anmeldetoken, und der resultierende Clientkontext ist vollständiger und genauer als ein von InitializeClientContextFromStringSid erstellter Clientkontext.

Wichtig Anwendungen sollten nicht davon ausgehen, dass der aufrufende Kontext über die Berechtigung zur Verwendung dieser Funktion verfügt. Die AuthzInitializeContextFromSid-Funktion liest das Attribut tokenGroupsGlobalAndUniversal der im Aufruf angegebenen SID, um die Gruppenmitgliedschaften des aktuellen Benutzers zu bestimmen. Wenn sich das Objekt des Benutzers in Active Directory befindet, muss der aufrufende Kontext über Lesezugriff auf das Attribut tokenGroupsGlobalAndUniversal für das Benutzerobjekt verfügen. Lesezugriff auf das Attribut tokenGroupsGlobalAndUniversal wird der Gruppe Pre-Windows 2000 Compatible Access gewährt, aber neue Domänen enthalten standardmäßig eine leere Pre-Windows 2000 Compatible Access-Gruppe , da die Standardeinrichtungsauswahl Berechtigungen ist, die mit Windows 2000 und Windows Server 2003 kompatibel sind. Daher haben Anwendungen möglicherweise keinen Zugriff auf das Attribut tokenGroupsGlobalAndUniversal. In diesem Fall schlägt die AuthzInitializeContextFromSid-Funktion mit ACCESS_DENIED fehl. Anwendungen, die diese Funktion verwenden, sollten diesen Fehler ordnungsgemäß behandeln und unterstützende Dokumentation bereitstellen. Um zu vereinfachen, konten die Berechtigung zum Abfragen der Gruppeninformationen eines Benutzers zu gewähren, fügen Sie Konten hinzu, die die Möglichkeit benötigen, Gruppeninformationen zur Windows-Autorisierungszugriffsgruppe nachzuschlagen.
 
Anwendungen, die diese Funktion aufrufen, sollten den vollqualifizierten Domänennamen oder Benutzerprinzipalnamen (UPN) verwenden. Andernfalls kann diese Methode gesamtstrukturübergreifend fehlschlagen, wenn der NetBIOS-Domänenname verwendet wird und die beiden Domänen keine direkte Vertrauensstellung haben.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile azroles.h
Bibliothek Azroles.lib
DLL Azroles.dll
Verteilbare Komponente Windows Server 2003 Administration Tools Pack unter Windows XP

Weitere Informationen

Zulassen des anonymen Zugriffs

IAzApplication