我正在为 ASP.NET 中的 Web 应用程序编写一个函数,其中客户端登录到服务器机器,这是 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,我在本地执行此操作。
有没有比我更了解的专家?我什至尝试通过命令行寻找一种方法来执行此操作,以便我可以创建一个进程,但我也无法找到一种方法来做到这一点。