在我的ASP.NET应用程序中,我从Active Directory获取信息。我必须使用GUID信息获取有关用户的信息(例如:a28a6a34dsfdsf57d9e54f945a241),但我不知道如何使用右侧过滤器进行此搜索:/
例如,如果我搜索用户姓氏:
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 = Session [“UserID”]。toString()
塔拉索夫
答案 0 :(得分:20)
您不需要搜索,如果您知道GUID,则可以直接绑定到该对象,例如
var user = new DirectoryEntry("LDAP://<GUID=119d0d80-699d-4e81-8e4e-5477e22ac1b3>");
(替换为您的实际ObjectGUID)。
检查此MSDN条目:Using ObjectGUID to Bind to an Object