2010-12-23 5 views
3

Wir haben eine Employee Self Service-Anwendung, die auf einem eigenständigen Server ausgeführt wird. Eines der Features der Anwendung ist "Passwort vergessen", so dass Mitarbeiter ihre eigenen Passwörter zurücksetzen können. Es funktioniert einwandfrei alle Server, aber nicht unter Windows Server 2008 R2. Unten ist ein Codefragment, die wir verwenden:Kennwort zurücksetzen unter Windows Server 2008 R2

User.Invoke("SetPassword", new object[] {"#12345Abc"}); 
User.CommitChanges(); 

Es sieht aus wie es nicht möglich ist, es überhaupt in Windows Server 2008 R2 zu arbeiten. Wenn jemand es funktioniert, bitte helfen.

Dank

+0

Welche Ausnahme hast du? –

+0

Wir haben Ausnahme: "Allgemeiner Zugriff verweigert Fehler". Es war seltsam. Wir haben den Benutzer/das Passwort eines Benutzers aus der lokalen Administratorgruppe zur Verfügung gestellt. – Dionysus

+0

Was meinen Sie, dass Sie den Benutzer/das Passwort eines Admin-Benutzers angegeben haben? Wo hast du das gemacht? Unter welchem ​​Benutzer läuft der App-Pool? Haben Sie schließlich die Sicherheitsereignisprotokolle des Servers überprüft, um festzustellen, welcher Benutzer den Anruf versucht? – NotMe

Antwort

1

UserPrincipal.SetPassword Versuchen. Es ist eine Abstraktion auf höherer Ebene und somit klüger. Es wird wissen, welche untere Ebene zu rufen ist. Die Art des Aufrufs erscheint mir viel zu zerbrechlich.

1

Wir haben versucht, auch diese:

PrincipalContext context = new PrincipalContext(ContextType.Machine, "servername"); 

UserPrincipal up = UserPrincipal.FindByIdentity(context, IdentityType.SamAccountName, "username"); 
if (up != null) 
{ 
    up.SetPassword("newpassword"); 
    // We got the same access denied exception here 
    up.Save(); 
} 
+1

Können Sie im Überwachungsprotokoll sehen, welcher Benutzer versucht, das Kennwort zu ändern? Wenn Sie in das AD anrufen, tun Sie das mit einer aktuellen Benutzeridentität. Anscheinend ist diese Identität unter Win2k8r2 anders. – fejesjoco

+0

Es scheint, dass Microsoft SetPassword mehr Sicherheitseinschränkungen auferlegt. Wir haben dafür gesorgt, dass Windows Server 2008 mit einigen Einstellungen für lokale Sicherheitsdokumente im Zusammenhang mit Benutzern der Benutzerzugriffssteuerung funktioniert. – Dionysus