2012-07-23 4 views
7

In meiner ASP.NET-Anwendung bekomme ich Informationen aus Active Directory. Ich muß erhalten Informationen über einen Benutzer mit den GUID Informationen (Beispiel: a28a6a34dsfdsf57d9e54f945a241), aber ich weiß nicht, wie ich die Filter direkt für diese Suche verwenden:/Wie kann ich einen Benutzer mit dem GUID (objectGUID) -Parameter in Active Directory finden

zum Beispiel, wenn ich in einen User-Nachnamen suchen:

DirectoryEntry Entry = new DirectoryEntry("LDAP://" + "Domain"); 

      string filter = "(&(objectClass=user)(objectCategory=person)(cn=" + txtBenutzer.Text + "*))"; 

      DirectorySearcher Searcher = new DirectorySearcher(Entry, filter); 

      var q = from s in Searcher.FindAll().OfType<SearchResult>() 
        select new 
        { 
         //GetProperty(s, "objectGUID"), 
         Benutzer = GetProperty(s, "sAMAccountName"), 
         eMail = GetProperty(s, "mail"), 
         Vorname = GetProperty(s, "givenName"), 
         Nachname = GetProperty(s, "sn"), 
         Telefon = GetProperty(s, "telephoneNumber"), 
         UserID = s.GetDirectoryEntry().NativeGuid 

        }; 

      this.myListView.DataSource = q; 
      this.myListView.DataBind(); 

jetzt brauche ich einen Filter mit der GUID, die ich den einzigen Benutzer in AD finden kann. Die GUID für diese Suche ich in einem String UserID haben = Session [ „UserID“]. ToString()

Tarasov

Antwort

17

Sie brauchen nicht zu suchen, können Sie sich direkt an das Objekt binden, wenn Sie das wissen GUID, z

var user = new DirectoryEntry("LDAP://<GUID=119d0d80-699d-4e81-8e4e-5477e22ac1b3>"); 

(durch Ihre tatsächliche ObjectGUID ersetzen).

prüfen diese MSDN-Eintrag: Using ObjectGUID to Bind to an Object

+0

oh ok ich es morgen testen;) Ich gebe Ihnen eine Anfrage – Tarasov

+0

Ok es funktioniert! :) danke – Tarasov

+0

@Tarasov: froh, dass es geholfen hat :) Wenn es funktioniert, könnten Sie die Antwort auch akzeptieren. Prost. –