Compartilhar via


Função NPLogonNotify (npapi.h)

Observação

Essa API foi preterida e será removida em uma versão futura.

O MPR chama essa função para notificar o gerenciador de credenciais de que ocorreu um evento de logon, permitindo que o gerenciador de credenciais retorne um script de logon. A função NPLogonNotify é implementada por uma DLL do gerenciador de credenciais (consulte Comentários).

Sintaxe

DWORD NPLogonNotify(
  [in]  PLUID   lpLogonId,
  [in]  LPCWSTR lpAuthentInfoType,
  [in]  LPVOID  lpAuthentInfo,
  [in]  LPCWSTR lpPreviousAuthentInfoType,
  [in]  LPVOID  lpPreviousAuthentInfo,
  [in]  LPWSTR  lpStationName,
  [in]  LPVOID  StationHandle,
  [out] LPWSTR  *lpLogonScript
);

Parâmetros

[in] lpLogonId

Ponteiro para o identificador da sessão que acabou de fazer logon.

[in] lpAuthentInfoType

Ponteiro para uma cadeia de caracteres que identifica o tipo de estrutura apontada por lpAuthentInfo.

Quando a Microsoft é o autenticador primário, uma das cadeias de caracteres a seguir é especificada para logons interativos e do controlador de serviço.

MSV1_0:Interactive
Kerberos:Interactive

[in] lpAuthentInfo

Ponteiro para uma estrutura que contém as credenciais usadas para fazer logon com êxito do usuário por meio do autenticador primário.

Quando a Microsoft é o autenticador primário (ou seja, quando lpAuthentifoType é "MSV1_0:Interactive" ou "Kerberos:Interactive"), a estrutura usada é MSV1_0_INTERACTIVE_LOGON ou KERB_INTERACTIVE_LOGON.

[in] lpPreviousAuthentInfoType

Ponteiro para uma cadeia de caracteres que identifica o tipo de estrutura apontado por lpPreviousAuthentInfo. Se o ponteiro for NULL, não haverá informações anteriores. Os valores esperados aqui são os mesmos do lpAuthentInfoType.

Quando a Microsoft é o autenticador primário, a cadeia de caracteres a seguir é especificada para logons interativos e do controlador de serviço.

MSV1_0:Interactive

[in] lpPreviousAuthentInfo

Ponteiro para uma estrutura que contém as credenciais usadas antes da alteração das informações de autenticação. Informações anteriores são fornecidas se o usuário foi forçado a alterar a senha (ou outras informações de autenticação) antes de fazer logon. Se o usuário não tiver sido forçado a alterar as informações de autenticação, esse ponteiro será NULL. Os valores esperados aqui são os mesmos do lpAuthentInfo.

Quando a Microsoft é o autenticador primário, a estrutura usada é MSV1_0_INTERACTIVE_LOGON ou KERB_INTERACTIVE_LOGON.

[in] lpStationName

Ponteiro para uma cadeia de caracteres que especifica o nome da estação na qual o usuário fez logon. O nome da estação pode ser usado para determinar se informações adicionais (específicas do provedor) podem ser obtidas.

Quando a Microsoft for o autenticador primário, uma das cadeias de caracteres a seguir será especificada.

Valor Significado
WinSta_0
Indica que se trata de um logon interativo por meio da estação de janela. Nesse caso, StationHandle é um HWND para a caixa de diálogo pai.
SvcCtl
Indica que esse é um logon iniciado pelo controlador de serviço. StationHandle não é usado nesse caso.

[in] StationHandle

Um valor de 32 bits cujo significado depende do nome (e, consequentemente, do tipo) da estação especificada em lpStationName.

Valor Significado
WinSta_0
Um identificador para a caixa de diálogo proprietário (hwndOwner) exibido atualmente na tela.
SvcCtl
Dados aleatórios. Não use.

[out] lpLogonScript

Ponteiro para um local em que um ponteiro para uma cadeia de caracteres terminada em nulo pode ser retornado.

Após a conclusão da função, esse valor pode apontar para uma cadeia de caracteres terminada em nulo que contém o nome de um programa a ser executado, além de quaisquer parâmetros exigidos pelo programa. LocalAlloc deve ser usado para alocar a memória para a cadeia de caracteres retornada. Essa memória será liberada pelo MPR quando não for mais necessária.

Valor retornado

Se a função for bem-sucedida, a função retornará WN_SUCCESS.

Se a função falhar, ela retornará um código de erro, que pode ser um dos seguintes.

Código de retorno Descrição
WN_NOT_SUPPORTED

O NPLogonNotify não tem suporte do gerenciador de credenciais.

WN_NO_NETWORK
A rede não está presente.
WN_FUNCTION_BUSY
O gerenciador de credenciais ainda está inicializando e não está pronto para ser chamado.

Comentários

A função NPLogonNotify é implementada pelos gerentes de credenciais para receber notificações quando as informações de autenticação são alteradas.

Cada gerenciador de credenciais tem permissão para retornar uma única cadeia de caracteres de linha de comando que pode ser usada para executar um script de logon (a implementação não deve chamar LogonUser nem carregar um perfil de usuário diretamente). O buffer dessa cadeia de caracteres é alocado pelo gerenciador de credenciais. O MPR é responsável por liberá-lo. A cadeia de caracteres retornada em lpLogonScript deve conter todas as informações necessárias para executar o script como uma linha de comando passada para CreateProcess.

Se a cadeia de caracteres exigir que o processador de comando processe a cadeia de caracteres, como no caso de comandos ou arquivos em lote, a cadeia de caracteres deverá ser prefixada com cmd /C.

Os scripts de logon serão executados no contexto do usuário quando o perfil do usuário estiver disponível. No entanto, as variáveis de ambiente definidas não serão globais e não estarão disponíveis para o shell inicial (por exemplo, o Gerenciador de Programas) ou qualquer outro programa executado em nome do usuário.

Requisitos

   
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho npapi.h

Confira também

CreateProcess

Localalloc

MSV1_0_INTERACTIVE_LOGON

NPGetCaps

NPPasswordChangeNotify