Einzelnen Beitrag anzeigen

Siggi

Registriert seit: 19. Jun 2004
Ort: Lollar
52 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: ADSI-Zugriff führt zu Programmabsturz

  Alt 5. Mai 2018, 17:14
Hallo Heiko,

gute Idee, aber leider nicht erfolgreich.

CHAR durch AnsiChar ersetzten geht nicht. Das ist nur eine Stelle ( domainName : array[0..DNLEN] of char; ) und da kann es nur CHAR sein, ansonsten beschwert sich auch der Compiler bei der Zeile if LookupAccountName(nil, PChar(FCurrentUser), sid, sidSize, domainName, domainNameSize, sidNameUse) then ... beim Domainname.

String durch AnsiString ersetzten geht fast überall, nur nicht bei dom1, uid1: String;
Die kann ich aber auch direkt übergeben, also statt
ADsGetObject(PWideChar('WinNT://' + dom1 + '/' + uid1), IADsUser, usr); so
ADsGetObject(PWideChar('WinNT://MyDomain/myUser'), IADsUser, usr); Fehler bleibt aber bestehen - der Aufruf gibt die Gruppen zurück und sobald man danach versucht, irgendein Objekt anzusprechen (im Besipile das TMemo) kommt die Zugriffsverletzung.

Ich versuche mal, selber direkt über die ActiveDs_TLB zuzugreifen. Die Verwendung der ADSI-Unit sollte ja eigentlich die Artbeit sparen, für die leider etwas komplizierten Zugriffe die Doku zu studieren und das alles "zu Fuß" zu machen. Aber wenn es dann doch zu mehr Probleme führt als dass es Arbeit spart, muss halt doch der eigene Kopf brummen und das Problem lösen .
Ausleden von Usern bekomme ich damit schon hin, muss noch etwas Doku lesen, dann finde ich auch noch raus, wie man zum aktuellen User die Gruppen auslesen kann...

Gruß
Siggi
  Mit Zitat antworten Zitat