Claves del Registro de autenticación

Cuando instala un proveedor de red, la aplicación debe crear las claves del Registro y los valores descritos en este tema. Estas claves y valores proporcionan información al MPR sobre los proveedores de red instalados en el sistema. MpR comprueba estas claves cuando se inicia y carga los archivos DLL del proveedor de red que encuentra.

Antes de crear un conjunto de claves para contener información sobre el proveedor de red, debe agregar el nombre del proveedor de red a la clave de pedido . Esta clave es una subclave de la siguiente clave:

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Control
            NetworkProvider

La clave de pedido contiene un valor único, ProviderOrder, que enumera los proveedores instalados y especifica el orden en el que se deben probar durante las operaciones que recorren los proveedores hasta que se encuentra un proveedor de aceptación.

El valor ProviderOrder contiene una lista separada por comas de nombres de clave. Cada nombre de clave de ProviderOrder identifica un proveedor de red. Cuando MPR recorre los proveedores, los llama en el orden en que aparecen en esta lista.

El nombre del proveedor establecido en ProviderOrder también debe usarse como nombre de la clave del Registro que contiene información sobre ese proveedor. Las claves del Registro específicas del proveedor se crean como subclaves de la clave siguiente:

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Services

En otras palabras, los nombres de proveedor especificados en ProviderOrder son la ruta de acceso al registro de las claves específicas del proveedor de red, en relación con la ruta de acceso siguiente:

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Services

Cuando se instala el servicio de proveedor de red, la aplicación de instalación debe agregar una clave de la siguiente manera:

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Services
            ProviderName

Donde ProviderName es el nombre del proveedor de red tal y como se especifica en el valor ProviderOrder de la clave de pedido . El valor Group de la clave ProviderName debe establecerse en "NetworkProvider". Esto identifica el servicio como en el grupo de proveedores de red.

También debe crear una subclave de ProviderName, networkprovider. Esta clave contiene los siguientes valores que describen el proveedor de red.

Value Descripción
Nombre
Contiene el nombre del proveedor. Este nombre se muestra al usuario como el nombre de la red en los cuadros de diálogo examinar y debe coincidir con el campo lpProvider devuelto en estructuras NETRESOURCE . Este nombre debe ser una variación del nombre del producto, preferiblemente con alguna indicación de la empresa, para que sea clara y única. "MS-LanMan" por ejemplo es un buen nombre, mientras que "La red" sería una mala elección.
ProviderPath
Contiene la ruta de acceso completa del archivo DLL que implementa el proveedor de red. MPR llama a LoadLibrary en esta ruta de acceso.

Los siguientes valores solo los usan los proveedores de red que admiten las funciones de administración de credenciales, NPLogonNotify y NPPasswordChangeNotify.

Value Descripción
Clase
DWORD que identifica la clase, o el tipo, de la funcionalidad de proveedor que admite este proveedor. El operador OR puede unir valores cuando corresponda. Los valores válidos para esto son WN_NETWORK_CLASS, WN_CREDENTIAL_CLASS, WN_PRIMARY_AUTHENT_CLASS y WN_SERVICE_CLASS.
Aunque un proveedor puede admitir la funcionalidad de autenticación principal, se usará otro medio para determinar qué autenticador es principal.
Windows XP/2000: No se admite el cambio de autenticadores principales, por lo que este valor se omite.
AuthentProviderPath
Este es el nombre de archivo completo del archivo DLL que exporta las funciones de administración de credenciales. Este valor es útil (pero no necesario) solo cuando el proveedor se identifica como un proveedor de CREDENTIAL_CLASS o PRIMARY_AUTHENT_CLASS. Si este valor no está presente para un proveedor de esta clase, se espera que las funciones de administración de credenciales se exportan desde el archivo DLL identificado por el valor ProviderPath. Este valor solo se usa si es conveniente empaquetar las funciones de red y las funciones del administrador de credenciales en archivos DLL independientes.

Además de los valores usados para registrar proveedores de red y administradores de credenciales, puede agregar un valor al registro para registrar un archivo DLL para recibir notificaciones de conexión. Para ello, cree un valor de REG_EXPAND_SZ en la siguiente clave:

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Control
            NetworkProvider
               Notifyees

Este valor debe especificar la ruta de acceso a un archivo DLL que implementa la API de notificación de conexión. El nombre de este valor puede ser cualquier cosa que desee, siempre y cuando no entre en conflicto con nombres de valor preexistentes.

Ejemplo

En el ejemplo siguiente se muestran las claves del Registro de un sistema que tiene dos proveedores de red instalados: LanmanWorkStation y AnotherNetSvc. AnotherNetSvc también es un administrador de credenciales. En el ejemplo, los nombres de clave son en negrita y los nombres de valor están en cursiva.

HKEY_LOCAL_MACHINE\SISTEMA\Currentcontrolset\Control\NetworkProvider\Orden

ProviderOrder = "LanmanWorkStation,AnotherNetSvc"

HKEY_LOCAL_MACHINE\SISTEMA\Currentcontrolset\Control\NetworkProvider\Notificaciones

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

HKEY_LOCAL_MACHINE\SISTEMA\Currentcontrolset\Servicios\LanmanWorkStation\

Group = "NetworkProvider"

HKEY_LOCAL_MACHINE\SISTEMA\Currentcontrolset\Servicios\LanmanWorkStation\NetworkProvider

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

Clase = 0x00000001 (WN_NETWORK_CLASS)

HKEY_LOCAL_MACHINE\SISTEMA\Currentcontrolset\Servicios\AnotherNetSvc\

Group = "NetworkProvider"

HKEY_LOCAL_MACHINE\SISTEMA\Currentcontrolset\Servicios\AnotherNetSvc\NetworkProvider

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

Clase = 0x00000003 (WN_NETWORK_CLASS | WN_CREDENTIAL_CLASS)

AuthentProviderPath = "c:\another\anetCM.dll"