使用C#在Active Directory中重置用户密码后,旧密码和新密码都可以工作



下面是用于重置密码的代码。
我想停止这种行为。
只能使用新密码。用户不能使用旧密码登录。

             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。

最新更新