Condividi tramite


Inizializzazione del contesto del server

Analogamente al client, il server acquisisce anche un credenziali handle per essere pronto a rispondere a una richiesta di autenticazione in ingresso dal client. Le credenziali del server vengono usate per autenticare il server nel client in protocolli di sicurezza che supportano l'autenticazione server o l'autenticazione reciproca. Il server ottiene un handle per le credenziali definite dall'account del servizio usato per avviare il server. A tale scopo, chiamare AcquireCredentialsHandle.

Il server può acquisire l'handle delle credenziali e quindi passare a uno stato di ascolto oppure può attendere in uno stato di ascolto fino all'arrivo di una richiesta di connessione e quindi acquisire un handle di credenziali in ingresso. Per altre informazioni sulle funzioni delle credenziali, vedere Gestione delle credenziali.

Quando il server riceve un messaggio di richiesta di connessione da un client, crea un contesto di sicurezza locale per il client usando AcceptSecurityContext (Generale). Il server usa questo contesto di sicurezza locale per eseguire richieste future dallo stesso client. Per altre informazioni sulle funzioni di contesto, vedere Context Management.

Il server controlla lo stato restituito e il descrittore del buffer di output per assicurarsi che non siano presenti errori finora e possa rifiutare la richiesta di connessione in caso di errori. Se sono presenti informazioni nel buffer di output restituito da AcceptSecurityContext (Generale), aggrega tale buffer in un messaggio di risposta al client.

Qualsiasi buffer di output da AcceptSecurityContext (Generale) deve essere inviato al client. Inoltre, se lo stato restituito richiede che il protocollo continui (SEC_I_CONTINUE_NEEDED o SEC_I_COMPLETE_AND_CONTINUE), è necessario un altro scambio di messaggi con il client.

Per ulteriori gambe, il server attende che il client risponda con un altro messaggio. Questa attesa può essere timeout in modo da evitare un attacco Denial of Service in cui un client non risponde mai, causando un thread del server e presto, tutti i thread del server, smettere di rispondere.