Obtention d'informations sur l'identité
Le fournisseur qui implémente le protocole d’authentification peut également fournir une interface de fonction qui obtient des informations d’identification initiales pour l’utilisateur demandant l’authentification.
Le fournisseur doit implémenter les fonctions suivantes.
Ces fonctions peuvent être implémentées dans la même DLL que le protocole d’authentification ou dans une DLL distincte. En outre, la DLL qui implémente les fonctions d’identité peut prendre en charge plusieurs protocoles d’authentification. Le chemin d’accès à la DLL pour ces fonctions est stocké dans la valeur de Registre RAS_EAP_VALUENAME_IDENTITY, sous la clé du protocole d’authentification. Pour plus d’informations sur la création de cette valeur de Registre, consultez Installation EAP.
La fonction RasEapGetIdentity affiche généralement une interface utilisateur pour obtenir des informations d’identité pour l’utilisateur. Toutefois, si le paramètre dwFlags contient l’indicateur RAS_EAP_FLAG_NON_INTERACTIVE, RasEapGetIdentity ne doit pas afficher d’interface utilisateur.
Si RasEapGetIdentity affiche une interface utilisateur, celle-ci doit prendre en charge les messages WM_COMMAND où la valeur de LOWORD (wParam) est égale à IDCANCEL.
Le service d’authentification appelle RasEapGetIdentity si la valeur RAS_EAP_VALUENAME_INVOKE_NAMEDLG qui se trouve dans le Registre pour cet EAP est définie sur zéro. Si RAS_EAP_VALUENAME_INVOKE_NAMEDLG n’est pas présent ou est présent et est défini sur un, le service d’authentification affiche la boîte de dialogue système standard pour le nom d’utilisateur.
En plus de RAS_EAP_VALUENAME_INVOKE_NAMEDLG, le fournisseur EAP peut créer une valeur associée, RAS_EAP_VALUENAME_INVOKE_PWDDLG, dans le Registre. Si cette valeur est présente et est définie sur zéro, le service n’affiche pas la boîte de dialogue système standard pour le mot de passe. Cette valeur est utile lors de l’implémentation d’une méthode biométrique telle qu’une analyse d’empreinte digitale pour authentifier l’utilisateur. Si les valeurs RAS_EAP_VALUENAME_INVOKE_NAMEDLG et RAS_EAP_VALUENAME_INVOKE_PWDDLG sont égales à zéro, une interface utilisateur d’identité peut être utilisée pour obtenir à la fois l’identité et les informations biométriques. Toutefois, si seul RAS_EAP_VALUENAME_INVOKE_PWDDLG est égal à zéro, le service d’authentification n’appelle pas RasEapGetIdentity. Dans ce cas, vous pouvez utiliser l’interface utilisateur interactive pour obtenir les informations biométriques.
Pour plus d’informations sur ces valeurs de Registre, consultez Valeurs du Registre du protocole d’authentification.
Les informations obtenues par RasEapGetIdentitysont transmises au protocole d’authentification pendant l’appel à RasEapBegin. Les informations sont signalées par les membres pszIdentity et pUserData de la structure PPP_EAP_INPUT. Pour enregistrer ces informations dans le Registre sur l’ordinateur client, le protocole d’authentification doit retourner les informations dans le paramètre pEapOutput de RasEapMakeMessage.
Après l’appel à RasEapBegin, le service d’authentification appelle RasEapFreeMemory pour libérer la mémoire occupée par ces données. Par conséquent, le protocole d’authentification doit copier les informations dans une mémoire tampon de mémoire privée pendant l’appel à RasEapBegin.