Estoy escribiendo una función para una aplicación web en ASP.NET donde el cliente inicia sesión en la máquina del servidor, que es Windows autenticada contra los usuarios locales en el servidor. La función que estoy escribiendo restablece la contraseña de los usuarios y les envía por correo electrónico la nueva. Lo hago así:Obligar al usuario local a cambiar la contraseña en el siguiente inicio de sesión con C#
String userPath = "WinNT://" + Environment.MachineName + "/" + username.Text;
DirectoryEntry de = new DirectoryEntry(userPath);
de.Invoke("SetPassword", new object[] { password });
¿Cómo puedo consultar también la bandera para obligar al usuario a cambiar su contraseña la próxima vez que inicien sesión con la contraseña por correo electrónico a ellos? Intenté usar pwdLastSet así:
de.Properties["pwdLastSet"].Value = 0;
Pero esto al parecer sólo funciona con LDAP, no WinNT, y yo estoy haciendo esto de forma local.
¿Algún experto lo conoce mejor que yo? Incluso he intentado buscar una forma de hacerlo a través de la línea de comandos para poder crear un Proceso, pero tampoco he podido encontrar la manera de hacerlo.