Freigeben über


SspiAcquireCredentialsHandleAsyncA-Funktion (sspi.h)

Die SspiAcquireCredentialsHandleAsyncA-Funktion ruft asynchron ein Handle für bereits vorhandene Anmeldeinformationen eines Sicherheitsprinzipals ab.

Dieses Handle ist für die Funktionen SspiInitializeSecurityContextAsync und SspiAcceptSecurityContextAsync erforderlich. Dabei kann es sich entweder um bereits vorhandene Anmeldeinformationen handeln, die über eine hier nicht beschriebene Systemanmeldung eingerichtet werden, oder der Aufrufer kann alternative Anmeldeinformationen bereitstellen.

Hinweis

Diese Funktion dient als asynchrone Entsprechung zu AcquireCredentialsHandle.

Syntax

SECURITY_STATUS SspiAcquireCredentialsHandleAsyncA(
  SspiAsyncContext *AsyncContext,
  LPSTR            pszPrincipal,
  LPSTR            pszPackage,
  unsigned long    fCredentialUse,
  void             *pvLogonId,
  void             *pAuthData,
  SEC_GET_KEY_FN   pGetKeyFn,
  void             *pvGetKeyArgument,
  PCredHandle      phCredential,
  PTimeStamp       ptsExpiry
);

Parameter

AsyncContext

Der asynchrone Aufrufkontext.

pszPrincipal

Ein Zeiger auf eine NULL-endende Zeichenfolge, die den Namen des Prinzipals angibt, dessen Anmeldeinformationen das Handle asynchron referenziert.

pszPackage

Ein Zeiger auf eine NULL-endende Zeichenfolge, die den Namen des Sicherheitspakets angibt, mit dem diese Anmeldeinformationen verwendet werden.

Siehe AcquireCredentialsHandleA: pszPackage

fCredentialUse

Ein Flag, das angibt, wie diese Anmeldeinformationen verwendet werden. Dieser Parameter kann einer der folgenden Werte sein:

Wert
Bedeutung
SECPKG_CRED_INBOUND Überprüfen Sie eingehende Serveranmeldeinformationen. Eingehende Anmeldeinformationen können mithilfe einer Authentifizierungsstelle überprüft werden, wenn SspiInitializeSecurityContextAsync oder SspiAcceptSecurityContextAsync aufgerufen wird. Wenn eine solche Autorität nicht verfügbar ist, schlägt die Funktion fehl und gibt SEC_E_NO_AUTHENTICATING_AUTHORITY zurück. Die Validierung ist paketspezifisch.
SECPKG_CRED_OUTBOUND Zulassen, dass lokale Clientanmeldeinformationen ein ausgehendes Token vorbereiten.

pvLogonId

Ein Zeiger auf einen lokal eindeutigen Bezeichner (LUID ), der den Benutzer identifiziert. Dieser Parameter wird für Dateisystemprozesse wie Netzwerkumleitungen bereitgestellt. Dieser Parameter kann NULL sein.

pAuthData

Ein Zeiger auf eine CREDSSP_CRED-Struktur , die Authentifizierungsdaten für Schannel- und Negotiate-Pakete angibt.

pGetKeyFn

Zeiger auf die GetKey()-Funktion.

pvGetKeyArgument

An GetKey() übergeben.

phCredential

Ein Zeiger auf die CredHandle-Struktur , die das Anmeldeinformationshandle empfängt.

ptsExpiry

Optional Ein Zeiger auf eine TimeStamp-Struktur , die den Zeitpunkt empfängt, zu dem die zurückgegebenen Anmeldeinformationen ablaufen. Der empfangene Strukturwert hängt vom Sicherheitspaket ab, das den Wert in Ortszeit angeben muss.

Rückgabewert

Gibt SEC_E_OK zurück, wenn die asynchrone Anforderung zum Abrufen eines Anmeldeinformationshandles erfolgreich zur Ausführung in die Warteschlange eingereiht wurde. Andernfalls wird der Fehler zurückgegeben, der beim Versuch generiert wurde, ihn in die Warteschlange zu stellen. Verwenden Sie SspiGetAsyncCallStatus, um die status des Vorgangs abzurufen.

Wenn das Handle abgerufen wurde, gibt SspiGetAsyncCallStatus SEC_E_OK zurück. Andernfalls wird möglicherweise SEC_I_ASYNC_CALL_PENDING zurückgegeben, wenn der Aufruf noch ausgeführt wird, oder einen der folgenden schwerwiegenden Fehlercodes in der folgenden Tabelle.

Rückgabecode
Beschreibung
SEC_E_INSUFFICIENT_MEMORY Es ist nicht genügend Arbeitsspeicher verfügbar, um die angeforderte Aktion abzuschließen.
SEC_E_INTERNAL_ERROR Es ist ein Fehler aufgetreten, der keinem SSPI-Fehlercode zugeordnet wurde.
SEC_E_NO_CREDENTIALS Im Sicherheitspaket sind keine Anmeldeinformationen verfügbar.
SEC_E_NOT_OWNER Der Aufrufer der Funktion verfügt nicht über die erforderlichen Anmeldeinformationen.
SEC_E_SECPKG_NOT_FOUND Das angeforderte Sicherheitspaket ist nicht vorhanden.
SEC_E_UNKNOWN_CREDENTIALS Die für das Paket angegebenen Anmeldeinformationen wurden nicht erkannt.

Hinweise

Die SspiAcquireCredentialsHandleAsyncA-Funktion gibt ein Handle an die Anmeldeinformationen eines Prinzipals zurück, z. B. eines Benutzers oder Clients, wie es von einem bestimmten Sicherheitspaket verwendet wird. Die Funktion kann das Handle entweder an bereits vorhandene Anmeldeinformationen oder an neu erstellte Anmeldeinformationen zurückgeben und zurückgeben. Dieses Handle kann in nachfolgenden Aufrufen der Funktionen SspiAcceptSecurityContextAsync und SspiInitializeSecurityContextAsync verwendet werden.

Im Allgemeinen stellt SspiAcquireCredentialsHandleAsyncA nicht die Anmeldeinformationen anderer Benutzer bereit, die auf demselben Computer angemeldet sind. Ein Aufrufer mit SE_TCB_NAME Berechtigung kann jedoch die Anmeldeinformationen einer vorhandenen Anmeldesitzung abrufen, indem er den Anmeldebezeichner (LUID) dieser Sitzung angibt. In der Regel wird dies von Kernelmodusmodulen verwendet, die im Namen eines angemeldeten Benutzers handeln müssen.

Ein Paket kann die Funktion in pGetKeyFn aufrufen, die vom RPC-Laufzeittransport bereitgestellt wird. Wenn der Transport das Konzept des Rückrufs zum Abrufen von Anmeldeinformationen nicht unterstützt, muss dieser Parameter NULL sein.

Für Aufrufer im Kernelmodus müssen die folgenden Unterschiede beachtet werden:

  • Die beiden Zeichenfolgenparameter müssen Unicode-Zeichenfolgen sein.
  • Die Pufferwerte müssen im virtuellen Prozessspeicher und nicht aus dem Pool zugeordnet werden.

Wenn Sie die verwendung der zurückgegebenen Anmeldeinformationen abgeschlossen haben, geben Sie den von den Anmeldeinformationen verwendeten Arbeitsspeicher frei, indem Sie die Funktion SspiFreeCredentialsHandleAsync aufrufen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10, Version 1607 [nur Kernelmodustreiber]
Unterstützte Mindestversion (Server) Windows Server 2016 [nur Kernelmodustreiber]
Kopfzeile sspi.h

Weitere Informationen

AcquireCredentialsHandle

SspiAcceptSecurityContextAsync

SspiFreeCredentialsHandleAsync

SspiInitializeSecurityContextAsync

SSPI-Funktionen