Authentifizierungsregistrierungsschlüssel
Wenn ein Netzwerkanbieter installiert wird, sollte Ihre Anwendung die in diesem Thema beschriebenen Registrierungsschlüssel und Werte erstellen. Diese Schlüssel und Werte stellen dem MPR Informationen zu den netzwerkanbietern bereit, die auf dem System installiert sind. Der MPR überprüft diese Schlüssel beim Starten und lädt die gefundenen Netzwerkanbieter-DLLs.
Bevor Sie einen Satz von Schlüsseln zum Speichern von Informationen zu Ihrem Netzwerkanbieter erstellen, sollten Sie dem Bestellschlüssel den Namen Ihres Netzwerkanbieters hinzufügen. Dieser Schlüssel ist ein Unterschlüssel des folgenden Schlüssels:
HKEY_LOCAL_MACHINE
SYSTEM
CurrentControlSet
Control
NetworkProvider
Der Auftragsschlüssel enthält den einzelnen Wert ProviderOrder, der die installierten Anbieter auflistet und die Reihenfolge angibt, in der sie während Vorgängen versucht werden sollen, die anbieter durchlaufen, bis ein akzeptierender Anbieter gefunden wird.
Der ProviderOrder-Wert enthält eine durch Trennzeichen getrennte Liste von Schlüsselnamen. Jeder Schlüsselname in ProviderOrder identifiziert einen Netzwerkanbieter. Wenn MPR die Anbieter durchläuft, ruft er sie in der Reihenfolge auf, in der sie in dieser Liste angezeigt werden.
Der in ProviderOrder festgelegte Anbietername sollte auch als Name des Registrierungsschlüssels verwendet werden, der Informationen zu diesem Anbieter enthält. Die anbieterspezifischen Registrierungsschlüssel werden als Unterschlüssel des folgenden Schlüssels erstellt:
HKEY_LOCAL_MACHINE
SYSTEM
CurrentControlSet
Services
Anders ausgedrückt: Die in ProviderOrder angegebenen Anbieternamen sind der Pfad zur Registrierung der netzwerkanbieterspezifischen Schlüssel relativ zum folgenden Pfad:
HKEY_LOCAL_MACHINE
SYSTEM
CurrentControlSet
Services
Wenn Ihr Netzwerkanbieterdienst installiert ist, sollte die Installationsanwendung wie folgt einen Schlüssel hinzufügen:
HKEY_LOCAL_MACHINE
SYSTEM
CurrentControlSet
Services
ProviderName
Dabei ist ProviderName der Name des Netzwerkanbieters, wie im ProviderOrder-Wert des Bestellschlüssels angegeben. Der Group-Wert unter dem ProviderName-Schlüssel sollte auf "NetworkProvider" festgelegt werden. Dadurch wird der Dienst als in der Netzwerkanbietergruppe identifiziert.
Sie müssen auch einen Unterschlüssel von ProviderName, networkprovider, erstellen. Dieser Schlüssel enthält die folgenden Werte, die den Netzwerkanbieter beschreiben.
Wert | BESCHREIBUNG |
---|---|
Name |
Enthält den Namen des Anbieters. Dieser Name wird dem Benutzer als Name des Netzwerks in den Dialogfeldern zum Durchsuchen angezeigt und sollte mit dem lpProvider-Feld übereinstimmen, das in NETRESOURCE-Strukturen zurückgegeben wird. Dieser Name sollte eine Variante des Produktnamens sein, vorzugsweise auch mit einem Hinweis auf das Unternehmen, damit er klar und eindeutig ist. "MS-LanMan" ist beispielsweise ein guter Name, während "The Net" eine schlechte Wahl wäre. |
ProviderPath |
Enthält den vollständigen Pfad der DLL, die den Netzwerkanbieter implementiert. MPR ruft LoadLibrary für diesen Pfad auf. |
Die folgenden Werte werden nur von Netzwerkanbietern verwendet, die die Anmeldeinformationsverwaltungsfunktionen NPLogonNotify und NPPasswordChangeNotify unterstützen.
Wert | Beschreibung |
---|---|
Klasse |
Ein DWORD , das die Klasse oder den Typ der Anbieterfunktionalität identifiziert, die dieser Anbieter unterstützt. Werte können ggf. vom OR-Operator verknüpft werden. Gültige Werte hierfür sind WN_NETWORK_CLASS, WN_CREDENTIAL_CLASS, WN_PRIMARY_AUTHENT_CLASS und WN_SERVICE_CLASS. Obwohl ein Anbieter möglicherweise primäre Authentifikatorfunktionen unterstützt, wird eine andere Methode verwendet, um zu bestimmen, welcher Authentifikator primär ist. Windows XP/2000: Das Wechseln der primären Authentifikatoren wird nicht unterstützt, sodass dieser Wert ignoriert wird. |
AuthentProviderPath |
Dies ist der vollqualifizierte Dateiname für die DLL, die die Anmeldeinformationsverwaltungsfunktionen exportiert. Dieser Wert ist nur nützlich (aber nicht erforderlich), wenn der Anbieter als CREDENTIAL_CLASS- oder PRIMARY_AUTHENT_CLASS-Anbieter identifiziert wird. Wenn dieser Wert für einen Anbieter dieser Klasse nicht vorhanden ist, wird erwartet, dass die Funktionen zur Verwaltung von Anmeldeinformationen aus der DLL exportiert werden, die durch den ProviderPath-Wert identifiziert wird. Dieser Wert wird nur verwendet, wenn es wünschenswert ist, die Netzwerkfunktionen und die Funktionen des Anmeldeinformations-Managers in separate DLLs zu packen. |
Zusätzlich zu den Werten, die zum Registrieren von Netzwerkanbietern und Anmeldeinformations-Managern verwendet werden, können Sie der Registrierung einen Wert hinzufügen, um eine DLL für den Empfang von Verbindungsbenachrichtigungen zu registrieren. Erstellen Sie hierzu einen REG_EXPAND_SZ Wert unter dem folgenden Schlüssel:
HKEY_LOCAL_MACHINE
SYSTEM
CurrentControlSet
Control
NetworkProvider
Notifyees
Dieser Wert sollte den Pfad zu einer DLL angeben, die die Verbindungsbenachrichtigungs-API implementiert. Der Name dieses Werts kann beliebig sein, solange er nicht mit bereits vorhandenen Wertnamen in Konflikt steht.
Beispiel
Das folgende Beispiel zeigt die Registrierungsschlüssel für ein System, auf dem zwei Netzwerkanbieter installiert sind: LanmanWorkStation und AnotherNetSvc. AnotherNetSvc ist auch ein Anmeldeinformations-Manager. Im Beispiel sind Schlüsselnamen fett und Wertnamen kursiv.
HKEY_LOCAL_MACHINE\SYSTEM\Currentcontrolset\Steuerung\NetworkProvider\Bestellung
ProviderOrder = "LanmanWorkStation,AnotherNetSvc"
HKEY_LOCAL_MACHINE\SYSTEM\Currentcontrolset\Steuerung\NetworkProvider\Benachrichtigungen
MyNotifyApp = "c:\connect\connect.dll"
HKEY_LOCAL_MACHINE\SYSTEM\Currentcontrolset\Dienstleistungen\LanmanWorkStation\
Group = "NetworkProvider"
HKEY_LOCAL_MACHINE\SYSTEM\Currentcontrolset\Dienstleistungen\LanmanWorkStation\NetworkProvider
Name = "NT LanMan"ProviderPath = "ntlanman.dll"
Class = 0x00000001 (WN_NETWORK_CLASS)
HKEY_LOCAL_MACHINE\SYSTEM\Currentcontrolset\Dienstleistungen\AnotherNetSvc\
Group = "NetworkProvider"
HKEY_LOCAL_MACHINE\SYSTEM\Currentcontrolset\Dienstleistungen\AnotherNetSvc\NetworkProvider
Name = "Another Network"ProviderPath = "c:\another\anet.dll"
Class = 0x00000003 (WN_NETWORK_CLASS | WN_CREDENTIAL_CLASS)
AuthentProviderPath = "c:\another\anetCM.dll"