Compartilhar via


Chaves do Registro de Autenticação

Quando ele instala um provedor de rede, seu aplicativo deve criar as chaves e os valores do Registro descritos neste tópico. Essas chaves e valores fornecem informações ao MPR sobre os provedores de rede instalados no sistema. O MPR verifica essas chaves quando é iniciado e carrega as DLLs do provedor de rede encontradas.

Antes de criar um conjunto de chaves para armazenar informações sobre seu provedor de rede, você deve adicionar o nome do provedor de rede à chave de pedido . Essa chave é uma subchave da seguinte chave:

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Control
            NetworkProvider

A chave de pedido contém um único valor, ProviderOrder, que lista os provedores instalados e especifica a ordem na qual eles devem ser testados durante operações que percorrem provedores até que um provedor de aceitação seja encontrado.

O valor ProviderOrder contém uma lista separada por vírgulas de nomes de chave. Cada nome de chave em ProviderOrder identifica um provedor de rede. Quando o MPR percorre os provedores, ele os chama na ordem em que eles aparecem nesta lista.

O nome do provedor definido em ProviderOrder também deve ser usado como o nome da chave do Registro que contém informações sobre esse provedor. As chaves do Registro específicas do provedor são criadas como subchaves da seguinte chave:

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Services

Em outras palavras, os nomes de provedor especificados em ProviderOrder são o caminho para o registro das chaves específicas do provedor de rede, em relação ao seguinte caminho:

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Services

Quando o serviço do provedor de rede estiver instalado, o aplicativo de instalação deverá adicionar uma chave da seguinte maneira:

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Services
            ProviderName

Em que ProviderName é o nome do provedor de rede, conforme especificado no valor ProviderOrder da chave de pedido . O valor De grupo na chave ProviderName deve ser definido como "NetworkProvider". Isso identifica o serviço como sendo no grupo de provedores de rede.

Você também deve criar uma subchave de ProviderName, networkprovider. Essa chave contém os valores a seguir que descrevem o provedor de rede.

Valor Descrição
Nome
Contém o nome do provedor. Esse nome é exibido para o usuário como o nome da rede nas caixas de diálogo procurar e deve corresponder ao campo lpProvider retornado nas estruturas NETRESOURCE . Esse nome deve ser uma variação do nome do produto, preferencialmente com alguma indicação da empresa também, para que seja claro e exclusivo. "MS-LanMan", por exemplo, é um bom nome, enquanto "The Net" seria uma escolha ruim.
ProviderPath
Contém o caminho completo da DLL que implementa o provedor de rede. O MPR chama LoadLibrary nesse caminho.

Os valores a seguir são usados apenas por provedores de rede que dão suporte às funções de gerenciamento de credenciais, NPLogonNotify e NPPasswordChangeNotify.

Valor Descrição
Classe
Um DWORD que identifica a classe ou o tipo da funcionalidade do provedor compatível com esse provedor. Os valores podem ser unidos pelo operador OR quando apropriado. Os valores válidos para isso são WN_NETWORK_CLASS, WN_CREDENTIAL_CLASS, WN_PRIMARY_AUTHENT_CLASS e WN_SERVICE_CLASS.
Embora um provedor possa dar suporte à funcionalidade de autenticador primário, outro meio será usado para determinar qual autenticador é primário.
Windows XP/2000: Não há suporte para a troca de autenticadores primários, portanto, esse valor é ignorado.
AuthentProviderPath
Esse é o nome de arquivo totalmente qualificado para a DLL que exporta as Funções de Gerenciamento de Credenciais. Esse valor é útil (mas não obrigatório) somente quando o provedor é identificado como sendo um provedor de CREDENTIAL_CLASS ou PRIMARY_AUTHENT_CLASS. Se esse valor não estiver presente para um provedor dessa classe, espera-se que as funções de gerenciamento de credenciais sejam exportadas da DLL identificada pelo valor ProviderPath. Esse valor será usado somente se for desejável empacotar as funções de rede e as funções do gerenciador de credenciais em DLLs separadas.

Além dos valores usados para registrar provedores de rede e gerentes de credenciais, você pode adicionar um valor ao registro para registrar uma DLL para receber notificações de conexão. Para fazer isso, crie um valor REG_EXPAND_SZ na seguinte chave:

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Control
            NetworkProvider
               Notifyees

Esse valor deve especificar o caminho para uma DLL que implementa a API de Notificação de Conexão. O nome desse valor pode ser o que você quiser, desde que ele não entre em conflito com nomes de valor preexistantes.

Exemplo

O exemplo a seguir mostra as chaves do Registro para um sistema que tem dois provedores de rede instalados: LanmanWorkStation e AnotherNetSvc. AnotherNetSvc também é um gerenciador de credenciais. No exemplo, os nomes de chave são negrito e os nomes de valor são itálicos.

HKEY_LOCAL_MACHINE\SISTEMA\Currentcontrolset\Controle\NetworkProvider\Ordem

ProviderOrder = "LanmanWorkStation,AnotherNetsvc"

HKEY_LOCAL_MACHINE\SISTEMA\Currentcontrolset\Controle\NetworkProvider\Notifyees

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

HKEY_LOCAL_MACHINE\SISTEMA\Currentcontrolset\Serviços\LanmanWorkStation\

Group = "NetworkProvider"

HKEY_LOCAL_MACHINE\SISTEMA\Currentcontrolset\Serviços\LanmanWorkStation\NetworkProvider

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

Classe = 0x00000001 (WN_NETWORK_CLASS)

HKEY_LOCAL_MACHINE\SISTEMA\Currentcontrolset\Serviços\AnotherNetSvc\

Group = "NetworkProvider"

HKEY_LOCAL_MACHINE\SISTEMA\Currentcontrolset\Serviços\AnotherNetSvc\NetworkProvider

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

Classe = 0x00000003 (WN_NETWORK_CLASS | WN_CREDENTIAL_CLASS)

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