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"