Fonction RasEapGetIdentity (raseapif.h)

Le gestionnaire de connexions RAS appelle la fonction RasEapGetIdentity pour obtenir des informations d’identité pour l’utilisateur qui demande l’authentification.

Syntaxe

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
);

Paramètres

[in] dwEapTypeId

Spécifie le protocole d’authentification pour lequel appeler l’interface utilisateur de l’identité.

[in] hwndParent

Gérez la fenêtre parente pour la boîte de dialogue de l’interface utilisateur. Si le paramètre dwFlags contient l’indicateur RAS_EAP_FLAG_NON_INTERACTIVE, hwndParent a la valeur NULL.

[in] dwFlags

Spécifie zéro ou plusieurs des indicateurs suivants qui qualifient le processus d’authentification.

Indicateur Signification
RAS_EAP_FLAG_ROUTER
Spécifie que l’ordinateur qui compose dans est un routeur. L’absence de cet indicateur indique que l’ordinateur qui compose est un client RAS.
RAS_EAP_FLAG_NON_INTERACTIVE
Spécifie que le protocole d’authentification ne doit pas afficher d’interface utilisateur. Si le protocole d’authentification n’est pas en mesure de déterminer l’identité à partir des données fournies, il doit retourner le code d’erreur , ERROR_INTERACTIVE_MODE. Si cet indicateur est spécifié, le paramètre hwndParent est NULL.
RAS_EAP_FLAG_LOGON
Spécifie que les données utilisateur sont obtenues lors de la connexion au système local, c’est-à-dire à partir de Winlogon.exe.
RAS_EAP_FLAG_PREVIEW
Spécifie que l’utilisateur doit être invité à entrer des informations d’identité avant de composer.
RAS_EAP_FLAG_FIRST_LINK
Indique que cette connexion est le premier lien d’une connexion multilink. Pour plus d’informations, consultez [Multilink and Callback Connections](/windows/win32/eap/multilink-and-callback-connections).
RAS_EAP_FLAG_MACHINE_AUTH
Spécifie que le processus d’authentification utilise les informations d’identification de l’ordinateur pour l’authentification. Les informations d’identification peuvent être un certificat, un nom de machine/mot de passe comme dans le cas de MSCHAPv2 ou tout autre moyen d’identification de la machine. Si le protocole d’authentification ne prend pas en charge l’authentification de l’ordinateur, il doit retourner l’erreur ERROR_NOT_SUPPORTED.
RAS_EAP_FLAG_8021X_AUTH
Spécifie que cette session s’exécute dans un contexte sans fil.

[in] pwszPhonebook

Pointeur vers une chaîne Unicode terminée par un caractère Null qui spécifie le chemin d’accès complet du fichier d’annuaire téléphonique (PBK). Si ce paramètre a la valeur NULL, la fonction utilise l’annuaire téléphonique système.

[in] pwszEntry

Pointeur vers une chaîne Unicode terminée par null qui spécifie un nom d’entrée existant.

[in] pConnectionDataIn

Pointeur vers les données spécifiques à la connexion actuellement stockées dans l’entrée de l’annuaire téléphonique.

[in] dwSizeOfConnectionDataIn

Spécifie la taille des données spécifiques à la connexion actuellement stockées dans l’entrée de l’annuaire téléphonique.

[in] pUserDataIn

Pointeur vers les données spécifiques à l’utilisateur actuellement stockées pour cet utilisateur dans le Registre.

[in] dwSizeOfUserDataIn

Spécifie la taille des données spécifiques à l’utilisateur actuellement stockées pour cet utilisateur dans le Registre.

[out] ppUserDataOut

Pointeur vers un pointeur qui, en cas de retour réussi, pointe vers les données d’identité de l’utilisateur. Ces données seront passées au protocole d’authentification dans le membre pUserData de PPP_EAP_INPUT lors de l’appel à RasEapBegin.

Le protocole d’authentification doit allouer la mémoire tampon pour les données d’identité. RAS libérera cette mémoire en appelant RasEapFreeMemory.

[out] pdwSizeOfUserDataOut

Pointeur vers une variable DWORD qui reçoit la taille des données pointées par le paramètre ppUserDataOut .

[out] ppwszIdentityOut

Pointeur vers un pointeur qui, en cas de retour réussi, pointe vers une chaîne Unicode terminée par null qui identifie l’utilisateur qui demande l’authentification. Cette chaîne est passée au protocole d’authentification dans le membre pszIdentity de PPP_EAP_INPUT lors de l’appel à RasEapBegin.

Valeur retournée

Si la fonction réussit, la valeur de retour est NO_ERROR.

Si la fonction n’a pas pu allouer de mémoire pour les données utilisateur, la valeur de retour doit être ERROR_NOT_ENOUGH_MEMORY.

Si la fonction est appelée avec l’indicateur RAS_EAP_FLAG_NON_INTERACTIVE, mais doit appeler une interface utilisateur pour déterminer l’identité de l’utilisateur, la fonction doit retourner ERROR_INTERACTIVE_MODE.

Si la fonction échoue d’une autre manière, la valeur de retour doit être un code d’erreur approprié de Winerror.h, Raserror.h ou Mprerror.h.

Remarques

La DLL qui implémente RasEapGetIdentity et RasEapFreeMemory peut prendre en charge plusieurs protocoles d’authentification. Le paramètre dwEapTypeId spécifie pour quel protocole appeler l’interface utilisateur d’identité.

Les protocoles IEEE 802.1X et PPP n’appellent pas RasEapGetIdentity sans une implémentation de RasEapFreeMemory.

Le protocole d’authentification reçoit les données retournées par RasEapGetIdentity dans le membre pUserData de PPP_EAP_INPUT pendant RasEapBegin. Pour stocker les données de cet utilisateur dans le Registre, le protocole d’authentification doit définir le membre pUserData de PPP_EAP_OUTPUT pour qu’il pointe vers les données, et le membre fSaveUserData de PPP_EAP_OUTPUT sur TRUE.

Cette fonction est appelée par la fonction RAS, RasGetEapUserIdentity.

Si RasEapGetIdentity affiche une interface utilisateur, l’interface utilisateur doit prendre en charge WM_COMMAND messages où LOWORD(wParam) est égal à IDCANCEL.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête raseapif.h

Voir aussi

Fonctions d’EAP

Informations de référence sur le protocole d’authentification extensible

Obtention d'informations sur l'identité

PPP_EAP_INPUT

RasEapFreeMemory

RasEapMakeMessage

RasGetEapUserIdentity