Obtendo informações de identidade

O fornecedor que implementa o protocolo de autenticação também pode fornecer uma interface de função que obtém informações de identificação inicial para o usuário que solicita a autenticação.

O fornecedor deve implementar as seguintes funções.

Essas funções podem ser implementadas na mesma DLL que o protocolo de autenticação ou em uma DLL separada. Além disso, a DLL que implementa as funções de identidade pode ser compatível com mais de um protocolo de autenticação. O caminho para a DLL dessas funções é armazenado no valor de registro RAS_EAP_VALUENAME_IDENTITY, na chave do protocolo de autenticação. Para obter mais informações sobre a criação desse valor de registro, confira Instalação do EAP.

A função RasEapGetIdentity normalmente exibe uma interface de usuário (UI) para obter as informações de identidade do usuário. No entanto, se o parâmetro dwFlags contiver o sinalizador RAS_EAP_FLAG_NON_INTERACTIVE, RasEapGetIdentity não deverá exibir uma interface do usuário.

Se RasEapGetIdentity exibir uma interface do usuário, a interface do usuário deverá dar suporte a mensagens WM_COMMAND em que o valor de LOWORD (wParam) é igual a IDCANCEL.

O serviço de autenticação chama RasEapGetIdentity se o valor RAS_EAP_VALUENAME_INVOKE_NAMEDLG que está no registro para esse EAP estiver definido como zero. Se RAS_EAP_VALUENAME_INVOKE_NAMEDLG não estiver presente, ou estiver presente e for definido como um, o serviço de autenticação exibirá a caixa de diálogo padrão do nome de usuário do sistema.

Além de RAS_EAP_VALUENAME_INVOKE_NAMEDLG, o fornecedor EAP pode criar um valor relacionado, RAS_EAP_VALUENAME_INVOKE_PWDDLG, no registro. Se esse valor estiver presente e for definido como zero, o serviço não exibirá a caixa de diálogo padrão da senha do sistema. Esse valor é útil ao implementar um método biométrico, como uma leitura de impressão digital, para autenticar o usuário. Se os valores de RAS_EAP_VALUENAME_INVOKE_NAMEDLG e RAS_EAP_VALUENAME_INVOKE_PWDDLG forem zero, uma interface do usuário de identidade poderá ser utilizada para obter a identidade e as informações biométricas. No entanto, se apenas RAS_EAP_VALUENAME_INVOKE_PWDDLG for zero, o serviço de autenticação não chamará RasEapGetIdentity. Nesse caso, você pode usar a interface de usuário interativa para obter as informações biométricas.

Para obter mais informações sobre esses valores de registro, confira Valores de Registro de Protocolo de Autenticação.

As informações obtidas por RasEapGetIdentity são passadas para o protocolo de autenticação durante a chamada para RasEapBegin. As informações são apontadas pelos membros pszIdentity e pUserData da estrutura PPP_EAP_INPUT. Para salvar essas informações no registro do computador cliente, o protocolo de autenticação deve retornar as informações no parâmetro pEapOutput de RasEapMakeMessage.

Após a chamada para RasEapBegin, o serviço de autenticação chama RasEapFreeMemory para liberar a memória ocupada por esses dados. Portanto, o protocolo de autenticação deve copiar as informações em um buffer de memória privado durante a chamada para RasEapBegin.