Arresto di una connessione Schannel
Al termine di una connessione, un client o un server deve arrestarlo. L'altra parte, a sua volta, deve riconoscere l'arresto ed eliminare la connessione.
Per arrestare una connessione Schannel
- Chiamare la funzione ApplyControlToken , specificando il token di controllo SCHANNEL_SHUTDOWN.
- Dopo aver ricevuto un valore restituito SEC_E_OK da ApplyControlToken, chiamare la funzione InitializeSecurityContext (client) o AcceptSecurityContext (Schannel)( server), passando i buffer vuoti.
- Procedere come se l'applicazione creasse una nuova connessione finché la funzione non restituisce SEC_I_CONTEXT_EXPIRED o SEC_E_OK per indicare che la connessione viene arrestata.
- Inviare le informazioni di output finali, se presenti, alla parte remota.
- Chiamare DeleteSecurityContext per liberare risorse mantenute dalla connessione.
Riconoscimento di un arresto
La funzione DecryptMessage (Schannel) restituisce SEC_I_CONTEXT_EXPIRED quando il mittente del messaggio ha arrestato la connessione. Dopo aver ricevuto questo valore restituito, seguire la procedura Per arrestare una connessione Schannel, in precedenza in questo argomento.