AcquireCredentialsHandle (CredSSP)-Funktion

Die Funktion AcquireCredentialsHandle (CredSSP) übernimmt ein Handle für bereits vorhandene Anmeldeinformationen eines Sicherheitsprinzipals. Dieses Handle ist für die Funktionen InitializeSecurityContext (CredSSP) und AcceptSecurityContext (CredSSP) erforderlich. Dabei kann es sich entweder um bereits vorhandene Anmeldeinformationen handelt, die über eine nicht hier beschriebene Systemanmeldung eingerichtet werden, oder der Aufrufer kann alternative Anmeldeinformationen bereitstellen.

Hinweis

Dies ist keine "Anmeldung beim Netzwerk" und impliziert nicht das Sammeln von Anmeldeinformationen.

Syntax

SECURITY_STATUS SEC_ENTRY AcquireCredentialsHandle(
  _In_opt_   SEC_CHAR       *pszPrincipal,
  _In_       SEC_CHAR       *pszPackage,
  _In_       unsigned long  fCredentialUse,
  _In_opt_   void           *pvLogonID,
  _In_opt_   void           *pAuthData,
  _In_opt_   SEC_GET_KEY_FN pGetKeyFn,
  _Reserved_ void           *pvGetKeyArgument,
  _Out_      PCredHandle    phCredential,
  _Out_opt_  PTimeStamp     ptsExpiry
);

Parameter

pszPrincipal [ in, optional]

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

Hinweis

Wenn der Prozess, der das Handle anfordert, keinen Zugriff auf die Anmeldeinformationen hat, gibt die Funktion einen Fehler zurück. Eine NULL-Zeichenfolge gibt an, dass der Prozess ein Handle für die Anmeldeinformationen des Benutzers erfordert, unter dessen Sicherheitskontext er ausgeführt wird.

pszPackage [ In]

Ein Zeiger auf eine auf NULL endende Zeichenfolge, die den Namen des Sicherheitspakets angibt, mit dem diese Anmeldeinformationen verwendet werden. Dies ist ein Sicherheitspaketname, der im Name-Member einer SecPkgInfo-Struktur zurückgegeben wird, die von der EnumerateSecurityPackages-Funktion zurückgegeben wird. Nachdem ein Kontext eingerichtet wurde, kann QueryContextAttributes (CredSSP) aufgerufen werden, wobei ulAttribute auf SECPKG _ ATTR _ PACKAGE _ INFO festgelegt ist, um Informationen zum verwendeten Sicherheitspaket zurückzugeben.

fCredentialUse [ In]

Ein Flag, das angibt, wie diese Anmeldeinformationen verwendet werden. Dieser Parameter kann einen der folgenden Werte annehmen.

Wert Bedeutung
SECPKG _ CRED _ INBOUND
0x1
Überprüfen Sie die Anmeldeinformationen eines eingehenden Servers. Eingehende Anmeldeinformationen können mithilfe einer authentifizierenden Autorität überprüft werden, wenn InitializeSecurityContext (CredSSP) oder AcceptSecurityContext (CredSSP) 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 Überprüfung ist paketspezifisch.
SECPKG _ CRED _ OUTBOUND
0x0
Gestatten Sie einem lokalen Client, ein ausgehendes Token vorzubereiten.

pvLogonId [ in, optional]

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 [ in, optional]

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

pGetKeyFn [ in, optional]

Reserviert. Dieser Parameter wird nicht verwendet und sollte auf NULL festgelegt werden.

pvGetKeyArgument [ in, optional]

Reserviert. Dieser Parameter muss auf NULL festgelegt werden.

phCredential [ out]

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

ptsExpiry [ out, 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

Wenn die Funktion erfolgreich ist, wird SEC _ E _ OK zurückgegeben.

Wenn die Funktion fehlschlägt, wird einer der folgenden Fehlercodes zurückgegeben.

Rückgabecode Beschreibung
SEC _ E _ INSUFFICIENT _ MEMORY Es ist nicht genügend Arbeitsspeicher verfügbar, um die angeforderte Aktion abzuschließen.
_INTERNER _ SEC _ E-FEHLER Fehler, 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 _ NICHT _ GEFUNDEN Das angeforderte Sicherheitspaket ist nicht vorhanden.
SEC _ E _ UNKNOWN _ CREDENTIALS Die für das Paket angegebenen Anmeldeinformationen wurden nicht erkannt.

Hinweise

Die AcquireCredentialsHandle -Funktion (CredSSP) gibt ein Handle für die Anmeldeinformationen eines Prinzipals zurück, z. B. eines Benutzers oder Clients, wie von einem bestimmten Sicherheitspaket verwendet. Die Funktion kann das Handle entweder an bereits vorhandene Anmeldeinformationen oder neu erstellte Anmeldeinformationen zurückgeben und zurückgeben. Dieses Handle kann in nachfolgenden Aufrufen der Funktionen AcceptSecurityContext (CredSSP) und InitializeSecurityContext (CredSSP) verwendet werden.

Im Allgemeinen stellt AcquireCredentialsHandle (CredSSP) 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 agieren müssen.

Ein Paket ruft möglicherweise die Funktion in pGetKeyFn auf, 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.

Bei Kernelmodusaufrufern 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 zurückgegebenen Anmeldeinformationen verwendet haben, können Sie den von den Anmeldeinformationen verwendeten Arbeitsspeicher freigeben, indem Sie die FreeCredentialsHandle-Funktion aufrufen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows [Nur Vista-Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Nur Server [ 2008-Desktop-Apps]
Header Sspi.h (include Security.h)
Bibliothek Secur32.lib
DLL Secur32.dll
Unicode- und ANSI-Name AcquireCredentialsHandleW (Unicode) und AcquireCredentialsHandleA (ANSI)

Siehe auch