2012-07-23 60 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

相关问题