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 iniciais 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 dar suporte a mais de um protocolo de autenticação. O caminho para a DLL dessas funções é armazenado no valor do registro RAS_EAP_VALUENAME_IDENTITY , sob a chave do protocolo de autenticação. Para obter mais informações sobre como criar esse valor do Registro, consulte Instalação do EAP.

A função RasEapGetIdentity normalmente exibe uma interface do usuário (interface do usuário) para obter informações de identidade para o 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 WM_COMMAND mensagens em que o valor de LOWORD(wParam) é igual a IDCANCEL.

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

Além de RAS_EAP_VALUENAME_INVOKE_NAMEDLG, o fornecedor do 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 de senha do sistema padrão. Esse valor é útil ao implementar um método biométrico, como uma verificação de impressões digitais para autenticar o usuário. Se os valores RAS_EAP_VALUENAME_INVOKE_NAMEDLG e RAS_EAP_VALUENAME_INVOKE_PWDDLG forem zero, uma interface do usuário de identidade poderá ser usada 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 interativa do usuário para obter as informações biométricas.

Para obter mais informações sobre esses valores do Registro, consulte Valores do 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 no 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 para um buffer de memória privado durante a chamada para RasEapBegin.