Partager via


Clés de Registre d’authentification

Lorsqu’elle installe un fournisseur réseau, votre application doit créer les clés et les valeurs de Registre décrites dans cette rubrique. Ces clés et valeurs fournissent des informations au MPR sur les fournisseurs réseau installés sur le système. Le MPR vérifie ces clés lorsqu’il démarre et charge les DLL du fournisseur 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 clé de commande . Cette clé est une sous-clé de la clé suivante :

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Control
            NetworkProvider

La clé de commande contient une seule valeur, 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 acceptant soit trouvé.

La valeur ProviderOrder contient une liste de noms de clés séparés par des virgules. Chaque nom de clé dans ProviderOrder identifie un fournisseur réseau. Lorsque MPR effectue un cycle dans 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 fournisseur spécifiés dans ProviderOrder sont le chemin d’accès au registre des clés spécifiques au fournisseur réseau, par rapport au chemin d’accès 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 réseau tel que spécifié dans la valeur ProviderOrder de la clé de commande . La valeur Group sous la clé ProviderName doit être définie sur « NetworkProvider ». Cela identifie le service comme se trouvant dans le groupe de fournisseurs réseau.

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

Valeur Description
Nom
Contient le nom du fournisseur. Ce nom s’affiche à l’utilisateur en tant que nom du réseau dans les boîtes de dialogue parcourir et doit correspondre au champ lpProvider retourné dans les structures NETRESOURCE . Ce nom doit être une variante du nom du produit, de préférence avec une indication de l’entreprise, afin qu’il soit clair et unique. « MS-LanMan » par exemple est un bon nom, alors que « The Net » serait un mauvais choix.
ProviderPath
Contient le chemin d’accès 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 réseau qui prennent en charge les fonctions de gestion des informations d’identification , NPLogonNotify et NPPasswordChangeNotify.

Valeur Description
Classe
DWORD qui identifie la classe ou le type de fonctionnalité de fournisseur prise en charge par ce fournisseur. Les valeurs peuvent être jointes par l’opérateur OR le cas échéant. Les valeurs valides pour cela 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 : Le changement d’authentificateurs principaux n’étant pas pris en charge, cette valeur est 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 n’est utilisée que s’il est souhaitable d’empaqueter les fonctions réseau et les fonctions du gestionnaire d’informations d’identification dans des DLL distinctes.

En plus des valeurs utilisées pour inscrire les fournisseurs réseau et les gestionnaires d’informations d’identification, vous pouvez ajouter une valeur au Registre pour inscrire une DLL afin de 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 notification de connexion. Le nom de cette valeur peut correspondre à ce que vous voulez, tant qu’il 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 en italique.

HKEY_LOCAL_MACHINE\SYSTÈME\Currentcontrolset\Contrôle\NetworkProvider\commande

ProviderOrder = « LanmanWorkStation,AnotherNetSvc »

HKEY_LOCAL_MACHINE\SYSTÈME\Currentcontrolset\Contrôle\NetworkProvider\Personnes notifiantes

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

HKEY_LOCAL_MACHINE\SYSTÈME\Currentcontrolset\Services\LanmanWorkStation\

Group = « NetworkProvider »

HKEY_LOCAL_MACHINE\SYSTÈME\Currentcontrolset\Services\LanmanWorkStation\NetworkProvider

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

Classe = 0x00000001 (WN_NETWORK_CLASS)

HKEY_LOCAL_MACHINE\SYSTÈME\Currentcontrolset\Services\AutreNetSvc\

Group = « NetworkProvider »

HKEY_LOCAL_MACHINE\SYSTÈME\Currentcontrolset\Services\AutreNetSvc\NetworkProvider

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

Classe = 0x00000003 (WN_NETWORK_CLASS | WN_CREDENTIAL_CLASS)

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