Interface interativa do usuário

O fornecedor que implementa o protocolo de autenticação também pode fornecer uma interface do usuário interativa para o protocolo. A interface do usuário interativa permite que o protocolo de autenticação obtenha informações adicionais do usuário conforme necessário durante a sessão de autenticação.

A interface do usuário interativa pode ser implementada na mesma DLL que o protocolo de autenticação ou em uma DLL separada. Além disso, a DLL que implementa a interface do usuário interativa pode dar suporte a mais de um protocolo de autenticação. O caminho para a DLL para a interface do usuário interativa é armazenado no valor do registro RAS_EAP_VALUENAME_INTERACTIVEUI , na chave do protocolo de autenticação. Para obter mais informações sobre como criar esse valor do Registro, consulte Instalação do EAP.

A DLL para a interface do usuário interativa deve exportar pontos de entrada para as seguintes funções:

Raseapinvokeinteractiveui
Raseapfreememory

A interface interativa do usuário deve dar suporte WM_COMMAND mensagens em que LOWORD(wParam) é igual a IDCANCEL.

Para exibir a interface do usuário interativa, o protocolo de autenticação deve definir o membro fInvokeInteractiveUI da estrutura PPP_EAP_OUTPUT como TRUE. Opcionalmente, o protocolo de autenticação pode definir os membros pUIContextData e dwSizeOfUIContextData como TRUE também. O serviço de autenticação usa os valores desses membros para passar dados de contexto para a interface do usuário interativa. O protocolo de autenticação retorna a estrutura PPP_EAP_OUTPUT como um parâmetro na função RasEapMakeMessage .

O serviço de autenticação invoca a interface do usuário interativa chamando RasEapInvokeInteractiveUI. Em seguida, o serviço passa o protocolo de autenticação um ponteiro para os dados retornados pela interface do usuário interativa na chamada subsequente para RasEapMakeMessage. O ponteiro é passado como membro de uma estrutura de PPP_EAP_INPUT . Depois que RasEapMakeMessage retornar, o serviço chamará RasEapFreeMemory para liberar a memória ocupada pelas informações. Portanto, o protocolo de autenticação deve copiar as informações em um buffer de memória privado durante a chamada para RasEapMakeMessage.