He estado tratando de usar LogonUser(...)
para obtener un token de acceso para una cuenta de usuario, como en this MSDN sample.¿Por qué no funciona LogonUser (...) para cuentas de dominio?
// Call LogonUser to obtain a handle to an access token.
bool returnValue = LogonUser(userName, domainName, Console.ReadLine(),
LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT,
out safeTokenHandle);
Cuando ejecuto la muestra (con privilegios de administrador) que funciona bien cuando se les da un dominio de .
y un nombre de cuenta de usuario y contraseña local, pero no importa lo que hago me sale el código de error fallo de 1326 (de inicio de sesión : nombre de usuario desconocido o contraseña incorrecta) si intento usar una cuenta de dominio. Obtengo el mismo resultado si ingreso basura para el dominio, lo que me hace preguntarme si realmente se está contactando con el DC.
¿Qué podría estar impidiendo que funcione?
Eso podría deberse a un montón de cosas desafortunadamente. ¿La máquina está conectada al dominio? ¿El usuario del dominio puede iniciar sesión en esa máquina? ¿La configuración de DNS está configurada correctamente? (Vi un artículo de Citrix que sugería que esto podría ser un problema). El siguiente artículo contiene información sobre lo que sucede cuando ingresas basura para el dominio: https://groups.google.com/group/microsoft.public.dotnet.languages.csharp/msg/dccfbf8b76120401?pli=1 –
. Validado que esto funciona sin la llamada Console.ReadLine() (por ejemplo, el suministro de una contraseña como una cadena directamente)? –
No importa de dónde provenga la contraseña; es una cadena cuando se pasa a 'LogonUser'. – GraemeF