下面是用于重置密码的代码。
我想停止这种行为。
只能使用新密码。用户不能使用旧密码登录。
using (var search= new DirectorySearcher(dir))
{
search.Asynchronous = false;
search.CacheResults = false;
dirSearch.Filter = "(&(objectCategory=User)(objectClass=person)(name=" + UserName.Trim() + "))";
SearchResult result = dirSearch.FindOne();
if (result != null)
{
using (var entryUpdate = result.GetDirectoryEntry())
{
entryUpdate.Invoke("setpassword", new object[] { NewPassword });
entryUpdate.CommitChanges();
//entryUpdate.RefreshCache();
}
}
result = null;
}
只有在Active Directory复制被破坏时才可能同时使用两个不同的密码。这实际上不是代码问题。修复它的方法是确定AD复制损坏的位置。repadmin/showrepl命令用于快速查看AD的健康状态。如果看到错误,那么在输出中显示错误的任何域控制器上运行dcdiag/v。我现在最喜欢的一个确定AD健康状况的新工具也是运行PowerShell实用程序ADHealthCheck。