AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Active Directory Zugriff über ADO Objekt
Thema durchsuchen
Ansicht
Themen-Optionen

Active Directory Zugriff über ADO Objekt

Ein Thema von MIK80 · begonnen am 8. Dez 2006 · letzter Beitrag vom 28. Dez 2006
Antwort Antwort
MIK80

Registriert seit: 7. Dez 2006
3 Beiträge
 
#1

Active Directory Zugriff über ADO Objekt

  Alt 8. Dez 2006, 18:58
Datenbank: SQL Server • Version: 2000 • Zugriff über: ADO
Hallo,

ich bin neu hier im Forum. Ich habe aber bereits fleißig hier gesucht und nicht das passende für mich gefunden. Ich möchte über ADO eine Verbindung zu unserem Domänencontroller mittels "OLE DB Provider für Microsoft Directory Service" herstellen. Die Verbindung scheint zu funktionieren. Ist ja auch der einfachte Teil.

Jetzt möchte ich mittels "ADOQuery" gewisse Daten auslesen. Für's erste würde mir der Benutzername reichen. Ich bräuchte allerdings sämtliche Benutzer. Dh. es sollen alle OUs untersucht werden.

Mein Problem liegt jetzt an der formulierung des SQL Statements.

Ich weiß nicht welche "Tabelle" ich ansprechen kann. Ich vermute meine Domäne "home.local" steht für meine Datenbank. Also wird die ADO Verbindung auch auf home.local hergestellt. Aber wie formuliere ich, welche "Tabelle" also welche OU, etc. ich ansprechen möchte?

SELECT * FROM ??? Bitte verweist mich nicht auf http://www.agnisoft.com/white_papers..._directory.asp! Das was ich benötige finde ich dort leider nicht.

lg
MIK
  Mit Zitat antworten Zitat
MIK80

Registriert seit: 7. Dez 2006
3 Beiträge
 
#2

Re: Active Directory Zugriff über ADO Objekt

  Alt 28. Dez 2006, 11:48
Hallo,

ich bins mal wieder

Ich habe es mittlerweile geschafft eine Verbindung zum AD herzustellen und gewisse Daten zu ermitteln.

Code:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ActiveDs_TLB, ActiveX, ComCtrls, adshlp;

type
  TForm1 = class(TForm)
    Button1: TButton;
    TreeView1: TTreeView;
    procedure Button1Click(Sender: TObject);
    procedure StartConnection;
  private
    { Private-Deklarationen }
    VDomain, VUser, VPasswort : string;
    Dom : IADsContainer;
  public
    { Public-Deklarationen }
    procedure AddToTree(disp: IADs);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.AddToTree(disp: IADs);
begin
  TreeView1.Items.Add(nil, disp.Get('Description'));
end;

procedure TForm1.StartConnection;
begin
 if Dom <> nil then Dom := nil;
 ADsOpenObject('WinNT://' + VDomain, VUser, VPasswort, 1, IADsContainer, Dom);

 Dom.Filter := VarArrayOf(['user']);

 TreeView1.Items.Clear;

 ADsEnumerateObjects(dom, AddToTree);
end;



procedure TForm1.Button1Click(Sender: TObject);
begin
  VDomain := 'domain.local';
  VUser := 'Administrator';
  VPasswort := 'kennwort4711!';
  StartConnection;
end;

end.
Folgende Probleme stellen sich mir jetzt.

Ich übergebe die Werte VDomain, VUser, VPasswort an den Verbindungsaufruf.
Der Rechner an dem ich sitze ist in der Domäne xyz.local. Ich habe einen zusätzlichen Domänencontroller (VMWare) mit der Domäne domain.local.
Von domain.local kann ich keine Daten auslesen. Von xyz.local kann ich allerdings Daten auslesen. Irgendwie scheint die Authentifizierung nicht zu funktionieren. Es scheint als würde immer die Windows Authentifizierung verwendet werden.

Mein zweites Problem ist, dass ich keine "Unique Identifier" habe bzw. weiß ich nicht wie dieses Feld heißt. Google erzählte mir, dass ich auf UID zugreifen kann. Über ADSI bekomme ich eine Fehlermeldung. Wenn ich allerdings über ADO und ADOQuery arbeite und

Code:
SELECT uid FROM LDAP://dc=domain,dc=local WHERE objectClass = 'user' and objectCategory = 'person'
verwende, kann ich das Feld uid auslesen. Allerdings ist es immer leer. Ich würde jetzt eine eindeutige ID aus LDAP brauchen um die Benutzer in eine SQL Datenbank zu schreiben und sie eindeutig zu identifizieren. (Evtl. werden die Benutzer mit LDAP synchronisiert).

lg
MIK80

PS: DeranderMicha hat mir bereits sehr viel weitergeholfen. Ich möchte mich hier nochmal bei ihm bedanken.
  Mit Zitat antworten Zitat
Antwort Antwort


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 05:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz