AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi LDAP/WINNT - versuche die Primary Group eines AD Users holen
Thema durchsuchen
Ansicht
Themen-Optionen

LDAP/WINNT - versuche die Primary Group eines AD Users holen

Offene Frage von "cherry"
Ein Thema von cherry · begonnen am 6. Mai 2010 · letzter Beitrag vom 10. Mai 2010
 
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#4

Re: LDAP/WINNT - versuche die Primary Group eines AD Users h

  Alt 10. Mai 2010, 13:11
Lieber Alter Mann

Danke schon mal für deine Antwort(die Zweite )... natürlich habe ich bei MSDN gesucht nun leider finde ich das was ich suche nicht immer... da arbeite ich noch drann...
Nun habe dein C# Code mal für Delphi übersetzt...
soweit so gut, das klappt auch prima. Da gibts nur ein Problem:
Ich lese alle Gruppen aus und vergleiche die ID, das ist "langsam" und irgendwie doof...

Über den WINNT Provider kriege ich ja bereits alle Gruppen, inkl. der Primären... jetzt wollte ich eben nur die Gruppen vergleichen...
Die suche wollte ich eben mit IDirectorySearch machen: die Suche ist kein Problem doch ich kriegs einfach nicht hin das Attribut "primaryGroupToken" auszulesen, respektive weiss nicht wo sich das befindet im pADsValues... col.pADsValues^.__MIDL_0010.Integer sollte es meiner meinung nach sein, gibt aber immer ne 0 zurück...

Bei (deiner) Variante weiss ich aber nicht wie ich beim SELECT z.B. WHERE cn='gruppe1' or cn='gruppe23' mitgeben kann. Jeder Versuch in der WHERE Klausel ein OR oder AND mitzugeben scheitert.

PS: Hier meine Übersetzung...

Delphi-Quellcode:
function TEADSUsers.GroupNameByTokenID(primaryGroupToken: Integer): string;
var
  ADOConn: TADOConnection;
  ADOSet: TADODataSet;
  I: Integer;
begin
  result := '';
  ADOConn := TADOConnection.Create(nil);
  ADOConn.Provider := 'ADsDSOObject';
  ADOConn.LoginPrompt := false;
  ADOConn.ConnectionString := 'Provider=ADsDSOObject;Encrypt Password=False;Mode=Read;Bind Flags=0;ADSI Flag=-2147483648';
  ADOSet := TADODataSet.Create(nil);
  ADOSet.Connection := ADOConn;
  ADOSet.CommandText := 'SELECT distinguishedName, cn, primaryGroupToken FROM '''+ADSMgr.EADSController.LDAPPATH+''' WHERE objectCategory=''group''';
  ADOSet.Open;
  ADOSet.First;
  for I := 0 to ADOSet.RecordCount -1 do
  begin
    if ADOSet.Fields[0].AsInteger = primaryGroupToken then
      result := ADOSet.Fields[1].AsString;
    ADOSet.Next;
  end;
end;
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz