C # - PrincipalContext (ContextType.Machine) kann unter Windows 10 nicht verwendet werden: Das System kann die angegebene Datei nicht finden

Das Folgende funktioniert auf mehreren Serverversionen von Windows, Windows 7 Pro und anderen, aber auf Windows 10 (mindestens zwei Computer). Ich erhalte die Fehlermeldung: "Das System kann die angegebene Datei nicht finden. \ R \ n". Die Fehlerquelle ist "Active Directory"

System.IO.FileNotFoundException: Das System kann die angegebene Datei nicht finden.

Stack Trace:

   at System.DirectoryServices.AccountManagement.UnsafeNativeMethods.IADs.Get(String bstrName)
   at System.DirectoryServices.AccountManagement.CredentialValidator.BindSam(String target, String userName, String password)
   at System.DirectoryServices.AccountManagement.CredentialValidator.Validate(String userName, String password)
   at System.DirectoryServices.AccountManagement.PrincipalContext.ValidateCredentials(String userName, String password)
   at IsValidWindowsUser(String userName, String password) in MembershipProvider.cs:line xxx

Das Folgende ist die minimale Menge an Code, die ich brauche, um den Fehler auszulösen. In diesem Fall verwende ich ValidateCredentials (), aber auch andere Vorgänge wie PrincipalSearches schlagen mit genau demselben Fehler fehl.

Ich habe mit LogonUser () bestätigt, dass die Anmeldeinformationen gültig sind.https: //msdn.microsoft.com/en-us/library/windows/desktop/aa378184 (v = vs.85) .aspx

    bool IsValidWindowsUser(string userName, string password)
    {
        using (var p = new PrincipalContext(ContextType.Machine))
            return p.ValidateCredentials(userName, password);
    }

WICHTIGER HINWEIS: Ich habe festgestellt, dass dies auf beiden Windows 10-Systemen funktioniert, aber seitdem wurden auf beiden Systemen die Festplatten durch ein Solid-State-Laufwerk ersetzt. Die Umzüge des Betriebssystems wurden mit Disk Imaging-Software durchgeführt, und alles andere auf dem Betriebssystem war intakt. Ich weiß, dass sich die Signatur der Festplatte / Partition geändert hat. Könnte dies dann Anmeldeinformationsspeicher kaputt / beschädigt haben? Das Laufwerk eines Windows 7 Pro-Computers wurde ebenfalls ausgetauscht, funktioniert aber weiterhin wie erwartet.

Eine andere alte Frage, die möglicherweise verwandt ist, ist:Validieren Sie die Anmeldeinformationen eines Benutzers auf dem lokalen Computer

Diese Frage scheint auch über eine FileNotFoundException-Ausnahme mit PrincipalContext (ContextType.Machine) zu sprechen, jedoch nur, wenn keine Netzwerkverbindung besteht. In meinem Fall gibt es immer eine Netzwerkverbindung. Ich würde LogonUser verwenden, aber ich muss auch die Gruppenmitgliedschaft testen.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage