Condividi tramite


Funzione RasEapGetIdentity (raseapif.h)

La gestione connessione RAS chiama la funzione RasEapGetIdentity per ottenere informazioni sull'identità per l'utente che richiede l'autenticazione.

Sintassi

DWORD RasEapGetIdentity(
  [in]  DWORD       dwEapTypeId,
  [in]  HWND        hwndParent,
  [in]  DWORD       dwFlags,
  [in]  const WCHAR *pwszPhonebook,
  [in]  const WCHAR *pwszEntry,
  [in]  BYTE        *pConnectionDataIn,
  [in]  DWORD       dwSizeOfConnectionDataIn,
  [in]  BYTE        *pUserDataIn,
  [in]  DWORD       dwSizeOfUserDataIn,
  [out] BYTE        **ppUserDataOut,
  [out] DWORD       *pdwSizeOfUserDataOut,
  [out] WCHAR       **ppwszIdentityOut
);

Parametri

[in] dwEapTypeId

Specifica il protocollo di autenticazione per il quale richiamare l'interfaccia utente di identità.

[in] hwndParent

Handle nella finestra padre per la finestra di dialogo dell'interfaccia utente. Se il parametro dwFlags contiene il flag RAS_EAP_FLAG_NON_INTERACTIVE, hwndParent è NULL.

[in] dwFlags

Specifica zero o più flag seguenti che qualificano il processo di autenticazione.

Contrassegno Significato
RAS_EAP_FLAG_ROUTER
Specifica che il computer che sta componendo è un router. L'assenza di questo flag indica che la composizione del computer è un client RAS.
RAS_EAP_FLAG_NON_INTERACTIVE
Specifica che il protocollo di autenticazione non deve visualizzare un'interfaccia utente. Se il protocollo di autenticazione non è in grado di determinare l'identità dai dati forniti, deve restituire il codice di errore, ERROR_INTERACTIVE_MODE. Se questo flag viene specificato, il parametro hwndParent sarà NULL.
RAS_EAP_FLAG_LOGON
Specifica che i dati utente vengono ottenuti durante l'accesso al sistema locale, ovvero da Winlogon.exe.
RAS_EAP_FLAG_PREVIEW
Specifica che all'utente devono essere richieste le informazioni sull'identità prima della composizione.
RAS_EAP_FLAG_FIRST_LINK
Indica che questa connessione è il primo collegamento in una connessione multilink. Per altre informazioni, vedere [Multilink and Callback Connections](/windows/win32/eap/multilink-and-callback-connections).
RAS_EAP_FLAG_MACHINE_AUTH
Specifica che il processo di autenticazione usa le credenziali del computer per l'autenticazione. Le credenziali possono essere un certificato, un nome/password del computer, come nel caso di MSCHAPv2 o qualsiasi altro mezzo per identificare il computer. Se il protocollo di autenticazione non supporta l'autenticazione del computer, deve restituire l'errore ERROR_NOT_SUPPORTED.
RAS_EAP_FLAG_8021X_AUTH
Specifica che questa sessione viene eseguita in un contesto wireless.

[in] pwszPhonebook

Puntatore a una stringa Unicode con terminazione Null che specifica il percorso completo del file della rubrica telefonica (PBK). Se questo parametro è NULL, la funzione utilizza la rubrica di sistema.

[in] pwszEntry

Puntatore a una stringa Unicode con terminazione Null che specifica un nome di voce esistente.

[in] pConnectionDataIn

Puntatore ai dati specifici della connessione attualmente archiviati nella voce della rubrica telefonica.

[in] dwSizeOfConnectionDataIn

Specifica le dimensioni dei dati specifici della connessione attualmente archiviati nella voce della rubrica telefonica.

[in] pUserDataIn

Puntatore ai dati specifici dell'utente attualmente archiviati per questo utente nel Registro di sistema.

[in] dwSizeOfUserDataIn

Specifica le dimensioni dei dati specifici dell'utente attualmente archiviati per questo utente nel Registro di sistema.

[out] ppUserDataOut

Puntatore a un puntatore che, in caso di esito positivo, punta ai dati di identità per l'utente. Questi dati verranno passati al protocollo di autenticazione nel membro pUserData di PPP_EAP_INPUT durante la chiamata a RasEapBegin.

Il protocollo di autenticazione deve allocare il buffer di memoria per i dati identity. RAS libera questa memoria chiamando RasEapFreeMemory.

[out] pdwSizeOfUserDataOut

Puntatore a una variabile DWORD che riceve le dimensioni dei dati a cui punta il parametro ppUserDataOut .

[out] ppwszIdentityOut

Puntatore a un puntatore che, in caso di esito positivo, punta a una stringa Unicode con terminazione Null che identifica l'utente che richiede l'autenticazione. Questa stringa viene passata al protocollo di autenticazione nel membro pszIdentity di PPP_EAP_INPUT durante la chiamata a RasEapBegin.

Valore restituito

Se la funzione ha esito positivo, il valore restituito viene NO_ERROR.

Se la funzione non è stata in grado di allocare memoria per i dati utente, il valore restituito deve essere ERROR_NOT_ENOUGH_MEMORY.

Se la funzione viene chiamata con il flag RAS_EAP_FLAG_NON_INTERACTIVE, ma deve richiamare un'interfaccia utente per determinare l'identità dell'utente, la funzione deve restituire ERROR_INTERACTIVE_MODE.

Se la funzione ha esito negativo in altro modo, il valore restituito deve essere un codice di errore appropriato da Winerror.h, Raserror.h o Mprerror.h.

Commenti

La DLL che implementa RasEapGetIdentity e RasEapFreeMemory può supportare più protocolli di autenticazione. Il parametro dwEapTypeId specifica per quale protocollo richiamare l'interfaccia utente identity.

I protocolli IEEE 802.1X e PPP non chiamano RasEapGetIdentity senza un'implementazione di RasEapFreeMemory.

Il protocollo di autenticazione riceve i dati restituiti da RasEapGetIdentity nel membro pUserData di PPP_EAP_INPUT durante RasEapBegin. Per archiviare i dati per questo utente nel Registro di sistema, il protocollo di autenticazione deve impostare il membro pUserData di PPP_EAP_OUTPUT in modo che punti ai dati e il membro fSaveUserData di PPP_EAP_OUTPUT su TRUE.

Questa funzione viene chiamata dalla funzione RAS RasGetEapUserIdentity.

Se RasEapGetIdentity visualizza un'interfaccia utente, l'interfaccia utente deve supportare WM_COMMAND messaggi in cui LOWORD(wParam) è uguale a IDCANCEL.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione raseapif.h

Vedi anche

Funzioni EAP

Informazioni di riferimento sul protocollo di autenticazione estendibile

Acquisizione di informazioni sull'identità

PPP_EAP_INPUT

RasEapFreeMemory

RasEapMakeMessage

RasGetEapUserIdentity