Partager via


Clés de Registre d’authentification

Quand elle installe un fournisseur réseau, votre application doit créer les clés et valeurs de Registre décrites dans cette rubrique. Ces clés et valeurs fournissent des informations au MPR sur les fournisseurs de réseau installés sur le système. Le MPR vérifie ces clés au démarrage et charge les DLL du fournisseur de réseau qu’il trouve.

Avant de créer un ensemble de clés pour contenir des informations sur votre fournisseur réseau, vous devez ajouter le nom de votre fournisseur réseau à la commande clé. Cette clé est une sous-clé de la clé suivante :

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Control
            NetworkProvider

La commande clé contient une valeur unique, ProviderOrder, qui répertorie les fournisseurs installés et spécifie l’ordre dans lequel ils doivent être essayés pendant les opérations qui parcourent les fournisseurs jusqu’à ce qu’un fournisseur accepté soit trouvé.

La valeur ProviderOrder contient une liste séparée par des virgules de noms de clés. Chaque nom de clé dans ProviderOrder identifie un fournisseur de réseau. Lorsque MPR passe par les fournisseurs, il les appelle dans l’ordre dans lequel ils apparaissent dans cette liste.

Le nom du fournisseur défini dans ProviderOrder doit également être utilisé comme nom de la clé de Registre qui contient des informations sur ce fournisseur. Les clés de Registre spécifiques au fournisseur sont créées en tant que sous-clés de la clé suivante :

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Services

En d’autres termes, les noms de fournisseurs spécifiés dans ProviderOrder sont le chemin d’accès au registre des clés spécifiques au fournisseur de réseau, par rapport au chemin suivant :

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Services

Lorsque votre service de fournisseur de réseau est installé, l’application d’installation doit ajouter une clé comme suit :

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Services
            ProviderName

ProviderName est le nom du fournisseur de réseau tel que spécifié dans la valeur ProviderOrder de la clé de . La valeur groupe sous la clé ProviderName doit être définie sur « NetworkProvider ». Cela identifie le service comme étant dans le groupe de fournisseurs de réseau.

Vous devez également créer une sous-clé de ProviderName, networkprovider. Cette clé contient les valeurs suivantes qui décrivent le fournisseur de réseau.

Valeur Description
Nom
Contient le nom du fournisseur. Ce nom s’affiche à l’utilisateur comme nom du réseau dans les boîtes de dialogue Parcourir et doit correspondre au champ lpProvider retourné dans structures NETRESOURCE. Ce nom doit être une variante du nom du produit, de préférence avec une indication de l’entreprise également, afin qu’il soit clair et unique. « MS-LanMan » par exemple est un bon nom, alors que « Le Net » serait un mauvais choix.
ProviderPath
Contient le chemin complet de la DLL qui implémente le fournisseur réseau. MPR appelle LoadLibrary sur ce chemin.

Les valeurs suivantes sont utilisées uniquement par les fournisseurs de réseau qui prennent en charge les fonctions de gestion des informations d’identification, NPLogonNotify et NPPasswordChangeNotify.

Valeur Description
classe
Une DWORD qui identifie la classe, ou le type, des fonctionnalités de fournisseur que ce fournisseur prend en charge. Les valeurs peuvent être jointes par l’opérateur OR le cas échéant. Les valeurs valides sont WN_NETWORK_CLASS, WN_CREDENTIAL_CLASS, WN_PRIMARY_AUTHENT_CLASS et WN_SERVICE_CLASS.
Bien qu’un fournisseur puisse prendre en charge la fonctionnalité d’authentificateur principal, un autre moyen sera utilisé pour déterminer l’authentificateur principal.
Windows XP/2000 : basculement d’authentificateurs principaux n’est pas pris en charge. Cette valeur est donc ignorée.
AuthentProviderPath
Il s’agit du nom de fichier complet de la DLL qui exporte les fonctions de gestion des informations d’identification. Cette valeur est utile (mais pas obligatoire) uniquement lorsque le fournisseur est identifié comme étant un fournisseur CREDENTIAL_CLASS ou PRIMARY_AUTHENT_CLASS. Si cette valeur n’est pas présente pour un fournisseur de cette classe, les fonctions de gestion des informations d’identification sont censées être exportées à partir de la DLL identifiée par la valeur ProviderPath. Cette valeur est utilisée uniquement s’il est souhaitable de empaqueter les fonctions réseau et les fonctions du gestionnaire d’informations d’identification dans des DLL distinctes.

Outre les valeurs utilisées pour inscrire des fournisseurs réseau et des gestionnaires d’informations d’identification, vous pouvez ajouter une valeur au Registre pour inscrire une DLL pour recevoir des notifications de connexion. Pour ce faire, créez une valeur REG_EXPAND_SZ sous la clé suivante :

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Control
            NetworkProvider
               Notifyees

Cette valeur doit spécifier le chemin d’accès à une DLL qui implémente l’API de notification de connexion . Le nom de cette valeur peut être tout ce que vous souhaitez, tant qu’elle n’est pas en conflit avec les noms de valeurs préexistants.

Exemple

L’exemple suivant montre les clés de Registre d’un système sur lequel deux fournisseurs réseau sont installés : LanmanWorkStation et AnotherNetSvc. AnotherNetSvc est également un gestionnaire d’informations d’identification. Dans l’exemple, les noms de clés sont en gras et les noms de valeur sont italiques.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider\

ProviderOrder = « LanmanWorkStation,AnotherNetSvc »

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider\Notifyees

MyNotifyApp = « c :\connect\connect.dll»

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkStation\

groupe = « NetworkProvider »

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkStation\NetworkProvider

Name = « NT LanMan »ProviderPath = "ntlanman.dll»

classe = 0x00000001 (WN_NETWORK_CLASS)

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AnotherNetSvc\

groupe = « NetworkProvider »

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AnotherNetSvc\NetworkProvider

Name = « Another Network »ProviderPath = « c :\another\anet.dll»

classe = 0x00000003 (WN_NETWORK_CLASS | WN_CREDENTIAL_CLASS)

AuthentProviderPath = « c :\another\anetCM.dll»