función Msv1_0SubAuthenticationRoutine (subauth.h)
La función Msv1_0SubAuthenticationRoutine realiza la autenticación específica del cliente o servidor.
Las credenciales e información de la entidad de seguridad de la base de datos administrador de cuentas de seguridad (SAM) se pasan a esta función para la autenticación.
Esta función se implementa mediante archivos DLL de paquetes de subautenticación personalizados para su uso con el paquete de autenticación MSV1_0.
Solo se llama a la función Msv1_0SubAuthenticationRoutine para una autenticación no interactiva, solo en el servidor de autenticación donde reside la cuenta y solo si un archivo DLL de subautenticación está registrado bajo la clave correcta en el Registro.
Sintaxis
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 el nivel de información proporcionado en el parámetro 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 de esta estructura.
[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_0SubAuthenticationRoutine devuelve éxito al autor de la llamada. 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 miembro Parameters , Msv1_0SubAuthenticationRoutine debe eliminar el búfer mediante la función MIDL_user_free y reasignarlo mediante la función MIDL_user_allocate . |
[out] UserFlags
Los valores que se van a devolver desde el parámetro ProfileBuffer de la función LsaLogonUser, cuando contiene una estructura MSV1_0_LM20_LOGON_PROFILE. Los siguientes valores se definen actualmente para el miembro UserFlags de la estructura.
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.
[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 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 la sesión, especifique un valor positivo grande, como:
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 cuenta está marcada para indicar que la contraseña debe cambiarse en el siguiente inicio de sesión. |
|
La contraseña no era válida. |
Comentarios
El paquete de autenticación de MSV1_0 llama a esta función si parte del parámetro AuthenticationInformation indica que se va a realizar la subautenticación y si se va a realizar una DLL de subautenticación que exporta la función Msv1_0SubAuthenticationRoutine está registrada correctamente en la estación de trabajo.
El paquete de autenticación MSV1_0 no admite la subautenticación para inicios de sesión interactivos, que requieren la estructura de MSV1_0_INTERACTIVE_LOGON . Los inicios de sesión de red, que requieren la estructura MSV1_0_LM20_LOGON , pueden usar la subautenticación.
Se llama a la función Msv1_0SubAuthenticationRoutine después de que se haya localizado el controlador de dominio correcto y se haya recuperado toda la información sobre la entidad de seguridad que se va a autenticar de la base de datos SAM. Cuando se usa la subautenticación, la autenticación es responsabilidad del archivo DLL de subautenticación y debe realizarse mediante la función Msv1_0SubAuthenticationRoutine exportada por ese archivo DLL.
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 |