Condividi tramite


Chiavi del Registro di sistema di autenticazione

Quando installa un provider di rete, l'applicazione deve creare le chiavi e i valori del Registro di sistema descritti in questo argomento. Queste chiavi e valori forniscono informazioni al MpR sui provider di rete installati nel sistema. Il mpr controlla queste chiavi all'avvio e carica le DLL del provider di rete trovate.

Prima di creare un set di chiavi per contenere informazioni sul provider di rete, è necessario aggiungere il nome del provider di rete alla chiave dell'ordine di. Questa chiave è una sottochiave della chiave seguente:

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Control
            NetworkProvider

L'ordine chiave contiene un singolo valore, ProviderOrder, che elenca i provider installati e specifica l'ordine in cui devono essere tentati durante le operazioni che passano attraverso i provider finché non viene trovato un provider di accettazione.

Il valore ProviderOrder contiene un elenco delimitato da virgole di nomi di chiave. Ogni nome di chiave in ProviderOrder identifica un provider di rete. Quando MPR scorre i provider, li chiama nell'ordine in cui vengono visualizzati in questo elenco.

Il nome del provider impostato in ProviderOrder deve essere usato anche come nome della chiave del Registro di sistema che contiene informazioni su tale provider. Le chiavi del Registro di sistema specifiche del provider vengono create come sottochiavi della chiave seguente:

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Services

In altre parole, i nomi dei provider specificati in ProviderOrder sono il percorso del Registro di sistema delle chiavi specifiche del provider di rete, rispetto al percorso seguente:

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Services

Quando il servizio del provider di rete è installato, l'applicazione di installazione deve aggiungere una chiave come indicato di seguito:

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Services
            ProviderName

Dove ProviderName è il nome del provider di rete come specificato nel valore ProviderOrder della chiave di dell'ordine. Il valore gruppo di sotto la chiave ProviderName deve essere impostato su "NetworkProvider". Identifica il servizio come nel gruppo di provider di rete.

È inoltre necessario creare una sottochiave di ProviderName, networkprovider. Questa chiave contiene i valori seguenti che descrivono il provider di rete.

Valore Descrizione
Nome
Contiene il nome del provider. Questo nome viene visualizzato all'utente come nome della rete nelle finestre di dialogo sfoglia e deve corrispondere al campo lpProvider restituito nelle struttureNETRESOURCE. Questo nome deve essere una variante del nome del prodotto, preferibilmente con alcune indicazioni della società, in modo che sia chiaro e univoco. "MS-LanMan" ad esempio è un buon nome, mentre "The Net" sarebbe una scelta scarsa.
ProviderPath
Contiene il percorso completo della DLL che implementa il provider di rete. MPR chiama LoadLibrary in questo percorso.

I valori seguenti vengono usati solo dai provider di rete che supportano le funzioni di gestione delle credenziali, NPLogonNotify e NPPasswordChangeNotify.

Valore Descrizione
classe
DWORD che identifica la classe o il tipo di funzionalità del provider supportate da questo provider. I valori possono essere uniti dall'operatore OR quando appropriato. I valori validi per questo sono WN_NETWORK_CLASS, WN_CREDENTIAL_CLASS, WN_PRIMARY_AUTHENT_CLASS e WN_SERVICE_CLASS.
Anche se un provider può supportare la funzionalità principale dell'autenticatore, verrà usato un altro mezzo per determinare quale autenticatore è primario.
Windows XP/2000: Cambio di autenticatori primari non è supportato, quindi questo valore viene ignorato.
AuthentProviderPath
Si tratta del nome di file completo per la DLL che esporta le funzioni di gestione delle credenziali. Questo valore è utile (ma non obbligatorio) solo quando il provider viene identificato come provider CREDENTIAL_CLASS o PRIMARY_AUTHENT_CLASS. Se questo valore non è presente per un provider di questa classe, le funzioni di gestione delle credenziali devono essere esportate dalla DLL identificata dal valore ProviderPath. Questo valore viene usato solo se è consigliabile creare un pacchetto delle funzioni di rete e delle funzioni di gestione delle credenziali in DLL separate.

Oltre ai valori usati per registrare provider di rete e gestori credenziali, è possibile aggiungere un valore al Registro di sistema per registrare una DLL per ricevere le notifiche di connessione. A tale scopo, creare un valore REG_EXPAND_SZ nella chiave seguente:

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Control
            NetworkProvider
               Notifyees

Questo valore deve specificare il percorso di una DLL che implementa l'API di notifica della connessione . Il nome di questo valore può essere qualsiasi elemento desiderato, purché non sia in conflitto con i nomi di valore preesistenti.

Esempio

L'esempio seguente mostra le chiavi del Registro di sistema per un sistema in cui sono installati due provider di rete: LanmanWorkStation e AnotherNetSvc. AnotherNetSvc è anche un gestore delle credenziali. Nell'esempio i nomi delle chiavi sono in grassetto e i nomi dei valori sono in corsivo.

HKEY_LOCAL_MACHINE\\Controllo\CurrentControlSet\NetworkProvider\order

ProviderOrder = "LanmanWorkStation,AnotherNetSvc"

HKEY_LOCAL_MACHINE\CONTROLLO\CurrentControlSet\\NetworkProvider\Notifyees

MyNotifyApp = "c:\connect\connect.dll"

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkStation\

group = "NetworkProvider"

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkStation\NetworkProvider

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

class = 0x00000001 (WN_NETWORK_CLASS)

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AnotherNetSvc\

group = "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"