Função RasEapGetIdentity (raseapif.h)

O gerenciador de conexões RAS chama a função RasEapGetIdentity para obter informações de identidade para o usuário que está solicitando autenticação.

Sintaxe

DWORD RasEapGetIdentity(
  [in]  DWORD       dwEapTypeId,
  [in]  HWND        hwndParent,
  [in]  DWORD       dwFlags,
  [in]  const WCHAR *pwszPhonebook,
  [in]  const WCHAR *pwszEntry,
  [in]  BYTE        *pConnectionDataIn,
  [in]  DWORD       dwSizeOfConnectionDataIn,
  [in]  BYTE        *pUserDataIn,
  [in]  DWORD       dwSizeOfUserDataIn,
  [out] BYTE        **ppUserDataOut,
  [out] DWORD       *pdwSizeOfUserDataOut,
  [out] WCHAR       **ppwszIdentityOut
);

Parâmetros

[in] dwEapTypeId

Especifica o protocolo de autenticação para o qual invocar a interface do usuário de identidade.

[in] hwndParent

Manipule para a janela pai da caixa de diálogo da interface do usuário. Se o parâmetro dwFlags contiver o sinalizador RAS_EAP_FLAG_NON_INTERACTIVE, hwndParent será NULL.

[in] dwFlags

Especifica zero ou mais dos sinalizadores a seguir que qualificam o processo de autenticação.

Sinalizador Significado
RAS_EAP_FLAG_ROUTER
Especifica que o computador que está discando em é um roteador. A ausência desse sinalizador indica que o computador discando em é um cliente RAS.
RAS_EAP_FLAG_NON_INTERACTIVE
Especifica que o protocolo de autenticação não deve exibir uma interface do usuário. Se o protocolo de autenticação não conseguir determinar a identidade dos dados fornecidos, ele deverá retornar o código de erro ERROR_INTERACTIVE_MODE. Se esse sinalizador for especificado, o parâmetro hwndParent será NULL.
RAS_EAP_FLAG_LOGON
Especifica que os dados do usuário são obtidos ao fazer logon no sistema local, ou seja, de Winlogon.exe.
RAS_EAP_FLAG_PREVIEW
Especifica que o usuário deve ser solicitado a fornecer informações de identidade antes de discar.
RAS_EAP_FLAG_FIRST_LINK
Indica que essa conexão é o primeiro link em uma conexão multilink. Consulte [Multilink e Callback Connections](/windows/win32/eap/multilink-and-callback-connections) para obter mais informações.
RAS_EAP_FLAG_MACHINE_AUTH
Especifica que o processo de autenticação usa credenciais de computador para autenticação. As credenciais podem ser um certificado, nome do computador/senha como no caso de MSCHAPv2 ou qualquer outro meio de identificar o computador. Se o protocolo de autenticação não der suporte à autenticação do computador, ele deverá retornar o erro ERROR_NOT_SUPPORTED.
RAS_EAP_FLAG_8021X_AUTH
Especifica que esta sessão está sendo executada em um contexto sem fio.

[in] pwszPhonebook

Ponteiro para uma cadeia de caracteres Unicode terminada em nulo que especifica o caminho completo do arquivo de catálogo telefônico (PBK). Se esse parâmetro for NULL, a função usará a lista telefônica do sistema.

[in] pwszEntry

Ponteiro para uma cadeia de caracteres Unicode terminada em nulo que especifica um nome de entrada existente.

[in] pConnectionDataIn

Ponteiro para os dados específicos da conexão atualmente armazenados na entrada do catálogo telefônico.

[in] dwSizeOfConnectionDataIn

Especifica o tamanho dos dados específicos da conexão atualmente armazenados na entrada da lista de telefones.

[in] pUserDataIn

Ponteiro para os dados específicos do usuário atualmente armazenados para esse usuário no registro.

[in] dwSizeOfUserDataIn

Especifica o tamanho dos dados específicos do usuário atualmente armazenados para esse usuário no registro.

[out] ppUserDataOut

Ponteiro para um ponteiro que, no retorno bem-sucedido, aponta para os dados de identidade do usuário. Esses dados serão passados para o protocolo de autenticação no membro pUserData do PPP_EAP_INPUT durante a chamada para RasEapBegin.

O protocolo de autenticação deve alocar o buffer de memória para os dados de identidade. O RAS liberará essa memória chamando RasEapFreeMemory.

[out] pdwSizeOfUserDataOut

Ponteiro para uma variável DWORD que recebe o tamanho dos dados apontados pelo parâmetro ppUserDataOut .

[out] ppwszIdentityOut

Ponteiro para um ponteiro que, no retorno bem-sucedido, aponta para uma cadeia de caracteres Unicode terminada em nulo que identifica o usuário que está solicitando autenticação. Essa cadeia de caracteres é passada para o protocolo de autenticação no membro pszIdentity do PPP_EAP_INPUT durante a chamada para RasEapBegin.

Retornar valor

Se a função for bem-sucedida, o valor retornado será NO_ERROR.

Se a função não puder alocar memória para os dados do usuário, o valor retornado deverá ser ERROR_NOT_ENOUGH_MEMORY.

Se a função for chamada com o sinalizador RAS_EAP_FLAG_NON_INTERACTIVE, mas precisar invocar uma interface do usuário para determinar a identidade do usuário, a função deverá retornar ERROR_INTERACTIVE_MODE.

Se a função falhar de alguma outra forma, o valor retornado deverá ser um código de erro apropriado de Winerror.h, Raserror.h ou Mprerror.h.

Comentários

A DLL que implementa RasEapGetIdentity e RasEapFreeMemory pode dar suporte a mais de um protocolo de autenticação. O parâmetro dwEapTypeId especifica para qual protocolo invocar a interface do usuário de identidade.

Os protocolos IEEE 802.1X e PPP não chamam RasEapGetIdentity sem uma implementação de RasEapFreeMemory.

O protocolo de autenticação recebe os dados retornados de RasEapGetIdentity no membro pUserData do PPP_EAP_INPUT durante RasEapBegin. Para armazenar os dados desse usuário no Registro, o protocolo de autenticação deve definir o membro pUserData do PPP_EAP_OUTPUT para apontar para os dados e o membro fSaveUserData do PPP_EAP_OUTPUT como TRUE.

Essa função é chamada pela função RAS, RasGetEapUserIdentity.

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

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho raseapif.h

Confira também

Funções do EAP

Referência de protocolo de autenticação extensível

Obtendo informações de identidade

PPP_EAP_INPUT

Raseapfreememory

Raseapmakemessage

RasGetEapUserIdentity