Compartilhar via


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.

Nota O pacote de autenticação Kerberos não chama essa rotina.
 

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
MSV1_0_PASSTHRU
Autenticação de passagem. O usuário não está se conectando a este computador.
MSV1_0_GUEST_LOGON
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
USER_ALL_PARAMETERS
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
LOGON_GUEST
Este é um logon de convidado.
LOGON_NOENCRYPTION
O chamador não especificou credenciais criptografadas.
 
Nota Por convenção, os pacotes de subautenticação retornam bits apenas no byte de ordem alta de UserFlags; no entanto, essa convenção não é imposta.
 

[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
STATUS_SUCCESS
Não houve erro.
STATUS_ACCOUNT_DISABLED
A conta está desabilitada.
STATUS_ACCOUNT_EXPIRED
A conta expirou.
STATUS_ACCOUNT_LOCKED_OUT
A conta está bloqueada.
STATUS_INVALID_INFO_CLASS
LogonLevel não é válido.
STATUS_INVALID_LOGON_HOURS
O usuário não está autorizado a fazer logon no momento.
STATUS_INVALID_WORKSTATION
O usuário não está autorizado a fazer logon na estação de trabalho especificada.
STATUS_NO_SUCH_USER
O usuário especificado não tem nenhuma conta.
STATUS_PASSWORD_EXPIRED
A senha expirou.
STATUS_PASSWORD_MUST_CHANGE
A conta é marcada para indicar que a senha deve ser alterada no próximo logon.
STATUS_WRONG_PASSWORD
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