Funzione RasSecurityDialogReceive (rasshost.h)

La funzione RasSecurityDialogReceive avvia un'operazione asincrona che riceve la risposta di un utente remoto a una sfida di sicurezza. La risposta è l'input digitato dall'utente in una finestra del terminale nel computer remoto. Una DLL di sicurezza RAS di terze parti chiama questa funzione come parte dell'autenticazione dell'utente remoto.

Per chiamare questa funzione, chiamare prima la funzione LoadLibrary per caricare Rasman.dll. Chiamare quindi la funzione GetProcAddress per ottenere il punto di ingresso RasSecurityDialogReceive della DLL.

Nota Windows Server 2008, Windows Server 2003, Windows 2000 Server e Windows NT Server 4.0 attualmente forniscono il supporto dell'host di sicurezza RAS solo per i dispositivi seriali. Non sono supportati altri tipi di connessioni, ad esempio Integrated Services Digital Network (ISDN) o reti private virtuali (VPN).
 

Sintassi

DWORD RasSecurityDialogReceive(
  [in] HPORT  hPort,
  [in] PBYTE  pBuffer,
  [in] PWORD  pBufferLength,
  [in] DWORD  Timeout,
  [in] HANDLE hEvent
);

Parametri

[in] hPort

Specifica l'handle di porta passato al server RAS alla DLL di sicurezza nella chiamata RasSecurityDialogBegin per questa transazione di autenticazione.

[in] pBuffer

Puntatore al buffer di ricezione passato alla DLL di sicurezza nella chiamata RasSecurityDialogBegin . Al termine dell'operazione di ricezione asincrona, questo buffer specifica la risposta dell'utente remoto.

[in] pBufferLength

Puntatore a una variabile WORD . Questa variabile deve specificare le dimensioni, in byte, del buffer pBuffer . Al termine dell'operazione di ricezione, la variabile indica il numero di byte restituiti nel buffer pBuffer .

[in] Timeout

Specifica un periodo di timeout, in secondi, dopo il quale il server RAS imposta l'oggetto evento hEvent sullo stato segnalato.

Se questo valore è zero, non esiste alcun periodo di timeout; ovvero, il server RAS non segnala l'oggetto evento fino al completamento dell'operazione di ricezione.

[in] hEvent

Specifica l'handle di un oggetto evento creato dalla funzione CreateEvent . Il server RAS imposta l'oggetto evento sullo stato segnalato quando l'operazione di ricezione è stata completata o quando il periodo di timeout è trascorso.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è IN SOSPESo (definito in Raserror.h). Ciò indica che l'operazione di ricezione è in corso.

Se si verifica un errore, il valore restituito è uno dei codici di errore definiti in Raserror.h o Winerror.h. GetLastError non fornisce informazioni di errore estese.

Commenti

Dopo aver chiamato la funzione RasSecurityDialogSend per inviare una richiesta di sicurezza all'utente remoto, la DLL di sicurezza deve chiamare la funzione RasSecurityDialogReceive per ottenere la risposta dell'utente.

La funzione RasSecurityDialogReceive è asincrona. Quando la funzione restituisce, la DLL di sicurezza deve usare una delle funzioni di attesa, ad esempio WaitForSingleObject, per attendere che l'oggetto evento hEvent venga segnalato. Il server RAS segnala l'oggetto evento al termine dell'operazione di ricezione o al termine dell'intervallo di timeout. Se l'operazione di ricezione ha esito positivo, il buffer pBuffer contiene la risposta dell'utente remoto e il parametro pBufferLength indica il numero di byte ricevuti. Se l'utente remoto invia più byte rispetto al buffer, il server RAS esegue il buffer dei byte in eccesso e li restituisce nella chiamata rasSecurityDialogReceive successiva.

Usare il parametro Timeout per specificare un intervallo di timeout. Se il timeout scade, il server RAS segnala l'oggetto evento e il parametro pBufferLength indica che sono stati trasferiti zero byte. In alternativa, impostare Timeout su zero e specificare un intervallo di timeout nella funzione di attesa usata per attendere l'oggetto evento.

Quando una DLL di sicurezza esegue l'autenticazione di un utente remoto, l'operazione di connessione nel computer remoto immette uno stato RASCS_Interactive sospeso. Il messaggio inviato da RasSecurityDialogSend viene visualizzato come output in una finestra del terminale nel computer remoto. La risposta ricevuta da RasSecurityDialogReceive è l'input che l'utente remoto digita nella finestra del terminale. Il valore RASCS_Interactive viene definito nell'enumerazione RASCONNSTATE .

Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione rasshost.h
DLL Rasman.dll

Vedi anche

CreateEvent

GetProcAddress

LoadLibrary

Funzioni di amministrazione del server RAS

RASCONNSTATE

RasSecurityDialogSend

Panoramica del servizio di accesso remoto (RAS)

WaitForSingleObject