Herunterfahren einer Schannel-Verbindung

Wenn ein Client oder Server mit einer Verbindung fertig ist, muss er sie herunterfahren. Die andere Partei wiederum muss das Herunterfahren erkennen und die Verbindung löschen.

So fahren Sie eine Schannel-Verbindung herunter

  1. Rufen Sie die ApplyControlToken-Funktion auf, und geben Sie das SCHANNEL_SHUTDOWN-Steuerelementtoken an.
  2. Nachdem Sie einen SEC_E_OK Rückgabewert von ApplyControlToken erhalten haben, rufen Sie die Funktion InitializeSecurityContext (Schannel) (Clients) oder AcceptSecurityContext (Schannel) (Server) auf, und übergeben Sie leere Puffer.
  3. Fahren Sie so fort, als ob Ihre Anwendung eine neue Verbindung erstellt, bis die Funktion SEC_I_CONTEXT_EXPIRED oder SEC_E_OK zurückgibt, um anzugeben, dass die Verbindung beendet wurde.
  4. Senden Sie ggf. die endgültigen Ausgabeinformationen an die Remotepartei.
  5. Rufen Sie DeleteSecurityContext auf, um ressourcen freizugeben, die von der Verbindung gehalten werden.

Erkennen eines Herunterfahrens

Die DecryptMessage-Funktion (Schannel) gibt SEC_I_CONTEXT_EXPIRED zurück, wenn der Absender der Nachricht die Verbindung beendet hat. Nachdem Sie diesen Rückgabewert erhalten haben, folgen Sie dem Verfahren Zum Herunterfahren einer Schannel-Verbindung weiter oben in diesem Thema.