Я использовал класс в System.DirectoryServices, чтобы изменить пароль в AD. Код вроде этого:
DirectoryEntry _directoryEntry = new DirectoryEntry(ldapPath, user, pwd, AuthenticationTypes.Secure);
public bool ChangePassword(string userPath, string newPassword)
{
try
{
if (userPath != null && _directoryEntry != null)
{
_directoryEntry.Path = userPath;
//Set the password
_directoryEntry.Invoke("SetPassword", new object[] { newPassword });
_directoryEntry.CommitChanges();
return true;
}
}
catch (Exception ex)
{
//Invalid Login or the domain controller is not contactable
throw ex;
}
finally
{
_directoryEntry.Close();
_directoryEntry = null;
}
return false;
}
Я выполнил эти коды на другом компьютере. Время, потраченное от нескольких мс до нескольких секунд.
Почему один и тот же код, выполняемый в разных средах для изменения пароля в AD, тратит разное время? Я потратил много времени на решение этой проблемы, но до сих пор не получил результата. Кто-нибудь может сказать мне? Большое спасибо !!!!!