Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi LDAP Abfrage. Kein Resultat wenn Bindestrich in Gruppenname! (https://www.delphipraxis.net/139131-ldap-abfrage-kein-resultat-wenn-bindestrich-gruppenname.html)

cherry 24. Aug 2009 10:44


LDAP Abfrage. Kein Resultat wenn Bindestrich in Gruppenname!
 
Hallo

Ich lese mit folgender Funktion die Mitglieder einer Gruppe auf. Dies funktioniert auch wunderbar, bis ich für "MyObjName" einen Gruppenname angebe, der einen Bindestrich "-" enthält. Dann ist das Ergebnis leer... An was kann das liegen?

Delphi-Quellcode:
{*------------------------------------------------------------------------------
  this function lists the members of a group

  @param ADsPath      ldap path to active directory
  @param MyObjClass   specifies the object class in which you perform
                        the search
  @param MyObjName    the name of the object you search after
  @param list         this list is containing the search result
  @return              returns wether the search was a success or not
-------------------------------------------------------------------------------}
function ListMemberOf(ADsPath, MyObjClass, MyObjName: String; list: TStringList): Boolean;
var rs, conn, com : Variant;
    strFilter, strAttributes, strADS : string;
    arrVar: Array of variant;
    SearchObj: String;
    i:Integer;
    strTxt,strValue:String;
begin
  conn := CreateOleObject('ADODB.Connection');
  com := CreateOleObject('ADODB.Command');
  Result := True;
  try
    conn.Provider := 'ADsDSOObject';
    conn.open;
    com.ActiveConnection := conn;
    if MyObjClass = 'user' then
      SearchObj := 'sAMAccountName'
    else
      SearchObj := 'CN';
    strFilter := '(&(objectClass='+MyObjClass+')('+SearchObj+'='+MyObjName+'))';
    strAttributes := 'memberOf';
    strADS := '<'+ADsPath+'>;' + strFilter + ';' + strAttributes + ';subtree';
    Com.CommandText := strADS;
    Com.Properties['Page Size'] := 100000;
    Com.Properties['Searchscope'] := 2;
    Com.Properties['Cache Results'] := False;
    rs := Com.Execute;
    if Not rs.EOF then
    begin
      try
        arrVar := rs.Fields['memberOf'].Value;
      except
        SetLength(arrVar,1);
        arrVar[0] := 'is not member of a group ...';
      end;
    end
    else
      Result := False;
    Rs := NULL;
  finally
    com := NULL;
    conn.Close;
    conn := NULL;
  end;
  for i := 0 to Length(arrVar) - 1 do
  begin
    strTxt := arrVar[i];
    strValue := MidStr(strTxt,Pos('=',strTxt)+1,Pos(',',strTxt)-Pos('=',strTxt)-1);
    list.Add(strValue);
  end;
end;
Danke schon ma...

cherry 25. Aug 2009 08:05

Re: LDAP Abfrage. Kein Resultat wenn Bindestrich in Gruppenn
 
*push*

Was ich immer wieder feststellen muss: In diesem Forum hat man immer super schnell eine Antwort, sobald es aber was mit AD zu tun hat, ändert sich diese Eigenschaft. :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:32 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