função Msv1_0SubAuthenticationFilter (subauth.h)
A função Msv1_0SubAuthenticationFilter executa a autenticação de logon do usuário específica para controladores de domínio.
A função recebe os dados de logon do usuário e todas as informações encontradas para o usuário no banco de dados SAM ( Gerenciador de Contas de Segurança ) do controlador de domínio.
Essa função é implementada por DLLs de pacote de subautenticação personalizadas para uso com os pacotes de autenticação Kerberos e MSV1_0.
Sintaxe
NTSTATUS Msv1_0SubAuthenticationFilter(
[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 em 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 é 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 convidado. |
[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_0SubAuthenticationFilter retornar êxito. 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_0SubAuthenticationFilter 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 da função LsaLogonUser no parâmetro ProfileBuffer dessa função. Esse parâmetro pode usar um dos valores a seguir.
Valor | Significado |
---|---|
|
Este foi 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. Esse parâmetro não é usado com o pacote de autenticação Kerberos.
[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 um tempo de sistema do Windows relativo a 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 automaticamente desconectado, especifique um grande valor positivo, da seguinte maneira:
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 senha deve ser alterada no próximo logon. |
|
A senha não era válida. |
Quando a função Msv1_0SubAuthenticationFilter é usada com o pacote de autenticação Kerberos, se a chamada de função retornar STATUS_SUCCESS e um dos dois parâmetros LogoffTime ou KickoffTime tiver um valor diferente de zero, esse valor será usado como o tempo de vida do tíquete. Se, por outro lado, os valores de ambos os parâmetros forem diferentes de zero, o menor desses dois valores será usado.
Se o valor usado para o tempo de vida do tíquete (quanto antes de LogoffTime e KickoffTime) for maior que o tempo de vida do tíquete padrão, esse valor será usado como o tempo máximo de renovação do tíquete. Por outro lado, se o maior dos dois valores (posterior de LogoffTime e KickoffTime) for menor que o tempo de vida do tíquete padrão, esse valor será usado como o tempo de vida do tíquete. Para obter mais informações, consulte Microsoft Kerberos.
Quando usada com o pacote de autenticação Kerberos, se essa função retornar um erro, o KDC (Centro de Distribuição de Chaves) retornará o erro Kerberos KDC_ERR_POLICY, com o valor status como o código de erro estendido.
Comentários
As implementações dessa função não devem executar nenhuma operação que cause tráfego LDAP ( Lightweight Directory Access Protocol ). Por exemplo, não se conecte e consulte o banco de dados do Active Directory .
Depois que o pacote de autenticação MSV1_0 ou Kerberos validar um logon, a função Msv1_0SubAuthenticationFilter poderá executar validação adicional para determinar se um usuário pode fazer logon em uma conta de rede. Essa função será chamada se a DLL do pacote de subautenticação estiver registrada corretamente como 'Auth0' no registro do controlador de domínio. O caminho do Registro é diferente dependendo se a função está em um MSV1_0 ou DLL do pacote de subautenticação Kerberos.
Essa rotina de filtro pode retornar STATUS_SUCCESS, o que indica que o logon deve continuar ou um código de falha, que indica que a validação adicional falhou.
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 |