2012-07-23 81 views
7

在我的ASP.NET應用程序中,我從Active Directory獲取信息。我必須讓信息有關使用GUID信息(例如:a28a6a34dsfdsf57d9e54f945a241)的用戶,但我不知道我該如何使用過濾器正確此搜索:/如何在Active Directory中使用GUID(objectGUID)參數查找用戶

例如,如果我搜索到用戶名字:

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

現在我需要一個GUID過濾器,我可以在AD中找到唯一的用戶。該GUID這個搜索我有一個字符串userid =會話[「用戶名」]。的toString()

塔拉索夫

回答

17

你並不需要搜索,你可以,如果你知道直接綁定到對象GUID,例如

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

(用您的實際ObjectGUID替換)。

檢查這個MSDN項:Using ObjectGUID to Bind to an Object

+0

哦確定我測試了明天;)我給你的請求 – Tarasov 2012-07-23 17:36:43

+0

好工作! :)謝謝 – Tarasov 2012-07-24 07:21:00

+0

@Tarasov:很高興它幫助:)如果它的工作,你也可以接受答案。乾杯。 – 2012-07-24 08:10:35

相關問題