Freigeben über


Clientkontextinitialisierung

Um eine sichere Verbindung herzustellen, erwirbt der Client eine ausgehende Anmeldeinformationen Verarbeiten, bevor eine Authentifizierungsanforderung an den Server gesendet wird. Der Server erstellt einen Sicherheitskontext für den Client aus der Authentifizierungsanforderung. Es gibt zwei clientseitige SSPI-Funktionen, die an der Authentifizierungseinrichtung beteiligt sind:

Code für diesen Prozess kann in der funktion GenClientContext in Using SSPI with a Windows Sockets Clientangezeigt werden.

Wenn ein Clientprogramm zusätzlich zu seinen eigenen Anmeldeinformationen Anmeldeinformationen verwenden muss, z. B. einen anderen Benutzernamen, domänennamen und ein Kennwort, stellt es sie im AcquireCredentialsHandle Aufruf mit einer SEC_WINNT_AUTH_IDENTITY Struktur bereit, die die zusätzlichen Anmeldeinformationen angibt. Weitere Informationen zu Anmeldeinformationen finden Sie unter Anmeldeinformationsverwaltung.

Anmerkung

Die Flags Member der SEC_WINNT_AUTH_IDENTITY-Struktur können auf SEC_WINNT_AUTH_IDENTITY_ANSI festgelegt werden, wenn Zeichenfolgen in der Struktur ASCI oder OEM sind. ANSI-Zeichenfolgen können mit dem Flags Member der SEC_WINNT_AUTH_IDENTITY Struktur verwendet werden, die auf SEC_WINNT_AUTH_IDENTITY_UNICODE festgelegt ist, wenn sie zuerst mithilfe der MultiByteToWideChar--Funktion in Unicode- konvertiert werden.

 

Um den ersten Teil der Authentifizierung zu initiieren, ruft der Client InitializeSecurityContext (Allgemein) auf, um ein anfängliches Sicherheitstoken abzurufen, das in einer Verbindungsanforderungsnachricht an den Server gesendet werden soll.

Der Client verwendet die im Ausgabepufferdeskriptor empfangenen Sicherheitstokeninformationen, um eine Nachricht zu generieren, die an den Server gesendet werden soll. Die Konstruktion der Nachricht im Hinblick auf die Platzierung verschiedener Puffer usw. ist Teil des Anwendungsprotokolls und muss von beiden Parteien verstanden werden.

Der Client überprüft den Rückgabestatus von InitializeSecurityContext (General) um festzustellen, ob die Authentifizierung in einem einzigen Aufruf abgeschlossen wird. Ein Rückgabestatus von SEC_I_CONTINUE_NEEDED gibt an, dass für das Sicherheitsprotokoll mehrere Authentifizierungsmeldungen erforderlich sind. Weitere Informationen zu Kontextfunktionen finden Sie unter Kontextverwaltung.