0

以下はパスワードのリセットに使用されているコードです。
この動作を停止します。
新しいパスワードのみが機能します。ユーザーは古いパスワードでログインすることはできません。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; 
       } 
+0

誰か助けてくれますか? –

+0

最初に複数のパスワードを許可することは特別であり、可能ではないと思われるので、最初にhttp://serverfault.com/で尋ねたいと思うかもしれません。あなたが最初に厳密には可能ではないと私が言うことができる限り、あなたは何か他のことが起こっている可能性が高いです。 C#呼び出しや[呼び出し元の呼び出し](https://msdn.microsoft.com/en-us/library/aa746344(v = vs.85).aspx)には関連しないとは言いません複数のパスワードを削除するか、最初のものか何かを削除する必要があります。可能であれば、少なくとも戻り値をチェックする必要があります。 – Quantic

答えて

1

Active Directoryの複製が壊れているときに同時に2つの異なるパスワードを持つことができます。これは実際にコードの問題ではありません。これを修正する方法は、ADレプリケーションが壊れている場所を特定することです。 repadmin/showreplコマンドを実行すると、AD Healthを簡単に確認できます。エラーが表示された場合は、出力にエラーを表示しているドメイン・コントローラー上でdcdiag/vを実行してください。 AD Healthを決定する新しいお気に入りツールは、PowerShellユーティリティADHealthCheckを実行することです。

関連する問題