Hallo,
ich ändere im ADS über ein DirectoryEntry Objekt das Passwort eines Users.
Jetzt möchte ich noch, daß er nach der nächsten Anmeldung aufgefordert wird sich ein neues zu vergeben (passwordExpired).
Ich bekomme das aber unter .Net 2.0 einfach nicht hin.
Hier mein Code:
weder
user = root.Children.Find(this.tbAnwenderId.Text, "user");
user.Invoke("SetPassword", new string[] { "123456" });
user.Properties["UserFlags"].Add(ADS_UF_PASSWORD_EXPIRED);
user.CommitChanges();
noch
user = root.Children.Find(this.tbAnwenderId.Text, "user");
user.Invoke("SetPassword", new string[] { "123456" });
user.Properties["pwdLastSet"].Value=1;
user.CommitChanges();
fkt. Ich bekomme immer eine Exception.
Unter .NET 2.0 gibt es einen Namespace System.DirectoryServices.ActiveDirectory, schau da mal, ob der hilft.
Achja und wenn man wegen eines Fehlers ( Exception ) Auskunft haben möchte, sollte man diese auch mit angeben. 😉
Ich denke die Exception spielt weniger die Rolle. Ich benötige einfach die 2-3 Zeilen Code, die das Passwort expiren.
Ob das nun lokal oder im ADS ist spielt auch nicht so die Rolle. Entscheidend ist, daß es ab Net 2.0 nicht wie früher fkt., da es weder dieses user_Flag noch die Property "pwdLastSet" offensichtlich noch gibt.
Keiner eine Idee?