função Msv1_0SubAuthenticationRoutine (subauth.h)
A função Msv1_0SubAuthenticationRoutine executa a autenticação específica do cliente/servidor.
As credenciais e as informações da entidade de segurança do banco de dados SAM ( Gerenciador de Contas de Segurança) são passadas para essa função para autenticação.
Essa função é implementada por DLLs de pacote de subautenticação personalizadas para uso com o pacote de autenticação MSV1_0.
A função Msv1_0SubAuthenticationRoutine é chamada apenas para uma autenticação não interativa, somente no servidor de autenticação em que a conta reside e somente se uma DLL de subautenticação for registrada sob a chave correta no registro.
Sintaxe
NTSTATUS Msv1_0SubAuthenticationRoutine(
[in] NETLOGON_LOGON_INFO_CLASS LogonLevel,
[in] PVOID LogonInformation,
[in] ULONG Flags,
[in] PUSER_ALL_INFORMATION UserAll,
[out] PULONG WhichFields,
[out] PULONG UserFlags,
[out] PBOOLEAN Authoritative,
[out] PLARGE_INTEGER LogoffTime,
[out] PLARGE_INTEGER KickoffTime
);
Parâmetros
[in] LogonLevel
Especifica o nível de informações fornecidas no parâmetro LogonInformation . Normalmente, esse parâmetro é definido como NetlogonInteractiveInformation.
[in] LogonInformation
Um ponteiro para uma estrutura NETLOGON_LOGON_IDENTITY_INFO . Os membros dessa estrutura contêm informações sobre o usuário que está fazendo logon. O membro LogonDomainName dessa estrutura é ignorado.
[in] Flags
Opcional. Contém sinalizadores que descrevem as circunstâncias do logon. Esse parâmetro pode usar um dos valores a seguir.
Valor | Significado |
---|---|
|
Autenticação de passagem. O usuário não está se conectando a este computador. |
|
Essa é uma repetição do logon usando a conta de usuário GUEST. |
[in] UserAll
Um ponteiro para uma estrutura USER_ALL_INFORMATION que contém a descrição do usuário, conforme retornado do banco de dados SAM.
[out] WhichFields
Retorna os membros da estrutura USER_ALL_INFORMATION que precisam ser gravados novamente no banco de dados SAM. Esses membros serão gravados somente se Msv1_0SubAuthenticationRoutine retornar êxito ao chamador. Somente o valor a seguir é válido.
Valor | Significado |
---|---|
|
Escreva os dados contidos no membro Parameters da estrutura UserAll de volta para o banco de dados SAM.
Se o tamanho do buffer de UNICODE_STRING do membro Parameters for alterado, Msv1_0SubAuthenticationRoutine deverá excluir o buffer usando a função MIDL_user_free e realocar-o usando a função MIDL_user_allocate . |
[out] UserFlags
Valores a serem retornados do parâmetro ProfileBuffer da função LsaLogonUser, quando ele contiver uma estrutura MSV1_0_LM20_LOGON_PROFILE. Os valores a seguir estão definidos atualmente para o membro UserFlags da estrutura.
Valor | Significado |
---|---|
|
Este é um logon de convidado. |
|
O chamador não especificou credenciais criptografadas. |
[out] Authoritative
Um ponteiro para um valor booliano que indica se o status retornado é um status autoritativo que deve ser retornado ao chamador original. Se o valor retornado for FALSE, a solicitação de logon poderá ser tentada novamente em outro controlador de domínio. Esse parâmetro deve retornar informações válidas, independentemente do valor retornado da chamada de função.
[out] LogoffTime
Um ponteiro para um valor que recebe a hora em que o usuário deve fazer logoff do sistema. Esse tempo é usado para controlar o tempo de vida do logon e é especificado como uma hora relativa ao sistema GMT.
[out] KickoffTime
Um ponteiro para um valor que recebe a hora em que o usuário deve ser desconectado do sistema. Esse tempo é usado para controlar o tempo de vida do logon e é especificado como uma hora relativa ao sistema GMT. Se o usuário não for desconectado, especifique um grande valor positivo, como:
KickoffTime->HighPart = 0x7FFFFFFF;
KickoffTime->LowPart = 0xFFFFFFFF;
Retornar valor
Essa função deve retornar um dos valores a seguir.
Código de retorno | Descrição |
---|---|
|
Não houve erro. |
|
A conta está desabilitada. |
|
A conta expirou. |
|
A conta está bloqueada. |
|
LogonLevel não é válido. |
|
O usuário não está autorizado a fazer logon no momento. |
|
O usuário não está autorizado a fazer logon na estação de trabalho especificada. |
|
O usuário especificado não tem nenhuma conta. |
|
A senha expirou. |
|
A conta é marcada para indicar que a senha deve ser alterada no próximo logon. |
|
A senha não era válida. |
Comentários
Essa função será chamada pelo pacote de autenticação MSV1_0 se parte do parâmetro AuthenticationInformation indicar que a subautenticação deve ser feita e se uma DLL de subautenticação que exporta a função Msv1_0SubAuthenticationRoutine estiver registrada corretamente na estação de trabalho.
O pacote de autenticação MSV1_0 não dá suporte à subautenticação para logons interativos, que exigem a estrutura de MSV1_0_INTERACTIVE_LOGON . Os logons de rede, que exigem a estrutura MSV1_0_LM20_LOGON , podem usar a subautenticação.
A função Msv1_0SubAuthenticationRoutine é chamada depois que o controlador de domínio correto foi localizado e todas as informações sobre a entidade de segurança a ser autenticada foram recuperadas do banco de dados SAM. Quando a subautenticação é usada, a autenticação é responsabilidade da DLL de subautenticação e deve ser feita pela função Msv1_0SubAuthenticationRoutine exportada por essa DLL.
Requisitos
Requisito | Valor |
---|---|
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 | subauth.h |