¿La función de inicio de sesión de Windows del usuario funciona con contraseñas antiguas?

StackOverflow https://stackoverflow.com/questions/1029047

  •  06-07-2019
  •  | 
  •  

Pregunta

Estoy usando la función LogonUser ( http: / /msdn.microsoft.com/en-us/library/aa378184(VS.85).aspx ) para autenticar a los usuarios. Sin embargo, he descubierto que si un usuario cambia su contraseña (es decir, de Contraseña1 a ??Contraseña2), ambas contraseñas funcionarán. Sin embargo, me gustaría que solo se pueda usar la contraseña actual. ¿Hay algo que deba configurar para que esto funcione así?

Estoy usando el siguiente fragmento de código:

LogonUser(nt_id, NULL, nt_password, LOGON32_LOGON_NETWORK, 3, &hToken );

nt_id se presenta en el formato de USER@USERDOMAIN.SOMETHING.COM

y tengo 3 allí en lugar de LOGON32_PROVIDER_WINNT50 , porque obtendría un error de compilación que indica un identificador no declarado para LOGON32_PROVIDER_WINNT50 (¿podría ser un síntoma?) pero sé se define como 3.

Gracias -Pete

¿Fue útil?

Solución

El error en tiempo de compilación probablemente esté ahí porque no lo has hecho

#define _WIN32_WINNT 0x0500

antes de incluir windows.h o agregarlo como una configuración de tiempo de compilación (-D_WIN32_WINNT = 0x0500).

Sin embargo, por qué LogonUser funcionaría tanto con la contraseña nueva como con la anterior está más allá de mí. Pero dado que lo que desea es autenticar a los usuarios (en lugar de suplantarlos) de acuerdo con MSDN, es más apropiado usar API SSPI ( aquí la forma recomendada).

Otros consejos

Esta es una configuración de red. De forma predeterminada, las contraseñas de Windows siguen siendo válidas durante una hora después de que se cambian. Su administrador de red puede cambiar esto si es necesario. (Tenga en cuenta que esto no afecta el inicio de sesión interactivo, pero sí afecta a todos los métodos programáticos).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top