función Msv1_0SubAuthenticationFilter (subauth.h)
La función Msv1_0SubAuthenticationFilter realiza la autenticación de inicio de sesión de usuario específica de los controladores de dominio.
La función recibe los datos de inicio de sesión del usuario y toda la información que se encuentra para el usuario en la base de datos administrador de cuentas de seguridad (SAM) del controlador de dominio.
Esta función se implementa mediante archivos DLL de paquetes de subautenticación personalizados para su uso con los paquetes de autenticación Kerberos y MSV1_0.
Sintaxis
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 el nivel de información proporcionado en LogonInformation. Este parámetro se establece normalmente en NetlogonInteractiveInformation.
[in] LogonInformation
Puntero a una estructura de NETLOGON_LOGON_IDENTITY_INFO . Los miembros de esta estructura contienen información sobre el usuario que inicia sesión. Se omite el miembro LogonDomainName .
[in] Flags
Opcional. Contiene marcas que describen las circunstancias del inicio de sesión. Este parámetro puede ser uno de los valores siguientes.
[in] UserAll
Puntero a una estructura de USER_ALL_INFORMATION que contiene la descripción del usuario tal como se devuelve de la base de datos SAM.
[out] WhichFields
Devuelve los miembros de la estructura USER_ALL_INFORMATION que deben escribirse en la base de datos SAM. Estos miembros solo se escribirán si Msv1_0SubAuthenticationFilter devuelve éxito. Solo el valor siguiente es válido.
Valor | Significado |
---|---|
|
Escriba los datos contenidos en el miembro Parameters de la estructura UserAll en la base de datos SAM.
Si se cambia el tamaño del búfer de UNICODE_STRING del miembro Parameters, Msv1_0SubAuthenticationFilter debe eliminar el búfer mediante la función MIDL_user_free y reasignarlo mediante la función MIDL_user_allocate. |
[out] UserFlags
Valores que se van a devolver desde la función LsaLogonUser en el parámetro ProfileBuffer de esa función. Este parámetro puede ser uno de los valores siguientes.
Valor | Significado |
---|---|
|
Se trata de un inicio de sesión de invitado. |
|
El autor de la llamada no ha especificado credenciales cifradas. |
[out] Authoritative
Puntero a un valor booleano que indica si el estado devuelto es un estado autoritativo que se debe devolver al autor de la llamada original. Si el valor devuelto es FALSE, la solicitud de inicio de sesión se puede volver a intentar en otro controlador de dominio. Este parámetro debe devolver información válida independientemente del valor devuelto de la llamada de función. Este parámetro no se usa con el paquete de autenticación Kerberos.
[out] LogoffTime
Puntero a un valor que recibe la hora en la que el usuario debe cerrar sesión en el sistema. Esta vez se usa para controlar la duración del inicio de sesión y se especifica como una hora del sistema de Windows relativa a GMT.
[out] KickoffTime
Puntero a un valor que recibe la hora en la que el usuario debe cerrar la sesión del sistema. Esta vez se usa para controlar la duración del inicio de sesión y se especifica como una hora del sistema relativa a GMT. Si el usuario no se va a cerrar sesión automáticamente, especifique un valor positivo grande, como se indica a continuación:
KickoffTime->HighPart = 0x7FFFFFFF;
KickoffTime->LowPart = 0xFFFFFFFF;
Valor devuelto
Esta función debe devolver uno de los valores siguientes.
Código devuelto | Descripción |
---|---|
|
No se produjo ningún error. |
|
La cuenta está deshabilitada. |
|
La cuenta ha expirado. |
|
Se ha bloqueado la cuenta. |
|
LogonLevel no es válido. |
|
El usuario no está autorizado para iniciar sesión en este momento. |
|
El usuario no está autorizado para iniciar sesión en la estación de trabajo especificada. |
|
El usuario especificado no tiene ninguna cuenta. |
|
La contraseña ha expirado. |
|
La contraseña debe cambiar en el siguiente inicio de sesión. |
|
La contraseña no era válida. |
Cuando se usa la función Msv1_0SubAuthenticationFilter con el paquete de autenticación Kerberos, si la llamada de función devuelve STATUS_SUCCESS y uno de los dos parámetros LogoffTime o KickoffTime tiene un valor distinto de cero, este valor se usa como vigencia del vale. Si, por otro lado, los valores de ambos parámetros son distintos de cero, se usa el menor de estos dos valores.
Si el valor que se usa para la duración del vale (cuanto antes logoffTime y KickoffTime) es mayor que la duración predeterminada del vale, ese valor se usará como tiempo de renovación máximo para el vale. Por el contrario, si el mayor de los dos valores (el posterior de LogoffTime y KickoffTime) es menor que la duración predeterminada del vale, este valor se usará como vigencia del vale. Para obtener más información, consulte Microsoft Kerberos.
Cuando se usa con el paquete de autenticación Kerberos, si esta función devuelve un error, el Centro de distribución de claves (KDC) devolverá el error Kerberos KDC_ERR_POLICY, con el valor de estado como código de error extendido.
Comentarios
Las implementaciones de esta función no deben ejecutar ninguna operación que provoque tráfico ligero del Protocolo de acceso a directorios (LDAP). Por ejemplo, no se conecte a y consulte la base de datos de Active Directory .
Una vez que el paquete de autenticación MSV1_0 o Kerberos haya validado un inicio de sesión, la función Msv1_0SubAuthenticationFilter puede realizar una validación adicional para determinar si un usuario puede iniciar sesión en una cuenta de red. Se llama a esta función si el archivo DLL del paquete de subautenticación se registra correctamente como "Auth0" en el registro del controlador de dominio. La ruta de acceso del Registro es diferente en función de si la función está en un MSV1_0 o en un archivo DLL de paquete de subautenticación Kerberos.
Esta rutina de filtro puede devolver STATUS_SUCCESS, lo que indica que el inicio de sesión debe continuar o un código de error, lo que indica que se produjo un error de validación adicional.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | subauth.h |