Chaves de registo de autenticação
Quando instala um provedor de rede, seu aplicativo deve criar as chaves do Registro e os valores 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 que encontra.
Antes de criar um conjunto de chaves para armazenar informações sobre seu provedor de rede, você deve adicionar o nome do seu provedor de rede à ordem chave. Esta chave é uma subchave da seguinte chave:
HKEY_LOCAL_MACHINE
SYSTEM
CurrentControlSet
Control
NetworkProvider
A chave de de ordem contém um único valor, ProviderOrder, que lista os provedores instalados e especifica a ordem na qual eles devem ser tentados durante as operações que percorrem os provedores até que um provedor aceitante seja encontrado.
O valor ProviderOrder contém uma lista separada por vírgulas de nomes de chaves. Cada nome de chave em ProviderOrder identifica um provedor de rede. Quando o MPR percorre os provedores, ele os chama na ordem em que 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 é instalado, o aplicativo de instalação deve adicionar uma chave da seguinte maneira:
HKEY_LOCAL_MACHINE
SYSTEM
CurrentControlSet
Services
ProviderName
Onde ProviderName é o nome do provedor de rede, conforme especificado no ProviderOrder valor da ordem chave. O valor Grupo sob a chave ProviderName deve ser definido como "NetworkProvider". Isso identifica o serviço como estando no grupo de provedores de rede.
Você também deve criar uma subchave de ProviderName, networkprovider. Essa chave contém os seguintes valores 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 de navegação e deve corresponder ao campo lpProvider retornado em estruturas de NETRESOURCE. Este nome deve ser alguma variação do nome do produto, de preferência com alguma indicação da empresa também, para que fique claro e único. "MS-LanMan", por exemplo, é um bom nome, enquanto "The Net" seria uma má escolha. |
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 somente por provedores de rede que suportam as funções de gerenciamento de credenciais, NPLogonNotify e NPPasswordChangeNotify.
Valor | Descrição |
---|---|
Classe |
Um DWORD que identifica a classe, ou tipo, de funcionalidade do provedor que esse provedor suporta. Os valores podem ser alinhados pelo operador OU, 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 oferecer suporte à funcionalidade de autenticador principal, outro meio será usado para determinar qual autenticador é primário. Windows XP/2000: Não há suporte para a alternância de autenticadores primários, portanto, esse valor é ignorado. |
AuthentProviderPath |
Este é 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 é 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 gerenciadores 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 de REG_EXPAND_SZ sob a 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 não entre em conflito com nomes de valor preexistentes.
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 das chaves são negrito e os nomes dos valores são itálicos.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider\
ProviderOrder = "LanmanWorkStation,AnotherNetSvc"
HKEY_LOCAL_MACHINE\SISTEMA\CurrentControlSet\Control\NetworkProvider\Notifyees
MyNotifyApp = "c:\connect\connect.dll"
HKEY_LOCAL_MACHINE\SISTEMA\CurrentControlSet\Serviços\LanmanWorkStation\
Grupo = "NetworkProvider"
HKEY_LOCAL_MACHINE\SISTEMA\CurrentControlSet\Services\LanmanWorkStation\NetworkProvider
Nome = "NT LanMan"ProviderPath = "ntlanman.dll"
Classe = 0x00000001 (WN_NETWORK_CLASS)
HKEY_LOCAL_MACHINE\SISTEMA\serviços de\CurrentControlSet\AnotherNetSvc\
Grupo = "NetworkProvider"
HKEY_LOCAL_MACHINE\SISTEMA\serviços de\CurrentControlSet\AnotherNetSvc\NetworkProvider
Nome = "Outra Rede"ProviderPath = "c:\another\anet.dll"
Classe = 0x00000003 (WN_NETWORK_CLASS | WN_CREDENTIAL_CLASS)
AuthentProviderPath = "c:\another\anetCM.dll"