Заставить локального пользователя изменить пароль при следующем входе в систему с помощью C #

Я пишу функцию для веб-приложения в ASP.NET, где клиент входит в серверную машину, которая аутентифицируется Windows для локальных пользователей на сервере.Функция, которую я пишу, сбрасывает пароль пользователей и отправляет им новый пароль по электронной почте. Я делаю это так:

String userPath = "WinNT://"  + Environment.MachineName + "/" + username.Text;
DirectoryEntry de = new DirectoryEntry(userPath);
de.Invoke("SetPassword", new object[] { password });

Как я могу также проверить флаг, чтобы заставить пользователя изменить свой пароль в следующий раз, когда они войдут в систему с паролем, отправленным им по электронной почте? Я пробовал использовать pwdLastSet следующим образом:

de.Properties["pwdLastSet"].Value = 0;

Но это очевидно работает только с LDAP, а не с WinNT, и я делаю это локально.

Какие-нибудь специалисты знают лучше меня? Я даже пытался найти способ сделать это через командную строку, чтобы я мог просто создать процесс, но я тоже не смог найти способ сделать это таким образом.

5
задан jnevelson 7 October 2010 в 23:40
поделиться