[LDAP/C#] wachtwoord wijzigen

Pagina: 1
Acties:

  • CaptBiele
  • Registratie: Juni 2002
  • Laatst online: 27-08-2021

CaptBiele

No Worries!

Topicstarter
Ik heb vandaag voor het eerst ADAM geinstalleerd. Heb met ldp.exe een gebruiker toegevoegd en hier een wachtwoord op ingesteld.
Heb vervolgens de connectie getest met dit progje. Mijn gebruiker komt mooi in het lijstje te staan, dus dat is goed.

Nu wil ik mbv C# het wachtwoord van deze gebruiker kunnen wijzigen. Nu heb ik zelf wat code bij elkaar geschraapt uit verschillende gevonden voorbeelden:
C#:
1
2
3
4
5
DirectoryEntry entry = new DirectoryEntry("LDAP://servernaam:389/O=bedrijf");
DirectoryEntry ou = entry.Children.Find("OU=ADAM users");
DirectoryEntry cn = ou.Children.Find("CN=ADAM user");
cn.Invoke("ChangePassword", new object[]{"oldpass","newpass"});
cn.CommitChanges();

Helaas krijg ik de volgende foutmelding:
code:
1
2
Exception has been thrown by the target of an invocation.
System.Runtime.InteropServices.COMException (0x8000500D): the directory property cannot be found in the cache.


Ik heb hier al geprobeerd op te zoeken, maar vind weinig relevante info...... ik heb hier nog heel weinig ervaring mee, dus wellicht dat ik iets heel simpels over het hoofd zie :|

  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

misschien eens zoeken op property cache Get, GetEx enz...
daar zal je al een stuk verder mee komen ;)

ASSUME makes an ASS out of U and ME


  • CaptBiele
  • Registratie: Juni 2002
  • Laatst online: 27-08-2021

CaptBiele

No Worries!

Topicstarter
HIGHGuY schreef op woensdag 31 augustus 2005 @ 18:16:
misschien eens zoeken op property cache Get, GetEx enz...
daar zal je al een stuk verder mee komen ;)
Dat is zeker handige informatie. Heb er wat over gelezen... vind het wel nog vaag.
Standaard komen waarden in de cache terecht, terwijl ik met Invoke( ) methodes aanroep die de native active directory wijzigen.

Moet ik dan eerst de waarde in de cache wijzigen, en dit nog eens doorvoeren in de "echte" directory?!
En is de cache er vanwege performance winst?!
Kan ik dit ook uitzetten?!

[ik ga wat dingetjes uitproberen...]

  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

als ik me niet vergis:
wanneer je een object krijgt, heb je enkel een soort referentie naar het object. Het object moet dan nog in de lokale cache gehaald worden met een Get() of via GetEx(parameters).
dan kun je waarden opvragen en veranderen.
uiteindelijk doe je dan een Set waarna de waarden uit de cache in je AD gestopt worden.

Daarenboven heb je nog verschillende types properties.
de ene worden zomaar in de cache gehaald
de andere moet je expliciet in de cache halen.
Het verschil is afhankelijk van 1 van de properties ervan, maar ik kan niet direct zeggen welke

soms wordt de cache ook gevuld doordat bij sommige properties impliciet Get aangeroepen wordt.

Met deze (hopelijk is ze juist) info kun je denk ik al even aan de slag in de documentatie.

ASSUME makes an ASS out of U and ME