2012-07-23 23 views
7

Trong ứng dụng ASP.NET của tôi, tôi lấy thông tin từ Active Directory. Tôi phải có được thông tin về một người dùng với các thông tin GUID (ví dụ: a28a6a34dsfdsf57d9e54f945a241) nhưng tôi không biết làm thế nào tôi có thể sử dụng bộ lọc phù hợp với tìm kiếm này:/Làm thế nào tôi có thể tìm thấy một người dùng với tham số GUID (objectGUID) trong Active Directory

ví dụ nếu tôi tìm đến một tài khoản LastName:

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(); 

bây giờ tôi cần bộ lọc với GUID để tôi có thể tìm thấy người dùng duy nhất trong AD. GUID cho tìm kiếm này tôi có trong một chuỗi UserID = Session [ "UserID"]. ToString()

Tarasov

Trả lời

17

Bạn không cần phải tìm kiếm, bạn có thể liên kết trực tiếp đến đối tượng nếu bạn biết GUID, vd

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

(thay thế bằng ObjectGUID thực tế của bạn).

Kiểm tra cụm từ này MSDN: Using ObjectGUID to Bind to an Object

+0

oh ok tôi thử nghiệm nó vào ngày mai;) Tôi cung cấp cho bạn một yêu cầu – Tarasov

+0

Ok nó hoạt động! :) cảm ơn – Tarasov

+0

@Tarasov: vui vì nó đã giúp :) Nếu nó hoạt động, bạn có thể chấp nhận câu trả lời là tốt. Chúc mừng. –

Các vấn đề liên quan