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