Я пишу функцию для веб-приложения в 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, и я делаю это локально.
Какие-нибудь специалисты знают лучше меня? Я даже пытался найти способ сделать это через командную строку, чтобы я мог просто создать процесс, но я тоже не смог найти способ сделать это таким образом.