Как я могу найти пользователя с параметром GUID (objectGUID) в Active Directory

В моем приложении 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()

Тарасов


person Tarasov    schedule 23.07.2012    source источник


Ответы (1)


Вам не нужно искать, вы можете напрямую привязываться к объекту, если знаете GUID, например.

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

(замените своим фактическим ObjectGUID).

Проверьте эту запись MSDN: Использование ObjectGUID для привязки к объекту

person Paolo Tedesco    schedule 23.07.2012
comment
ок ок завтра протестирую ;) даю вам просьбу - person Tarasov; 23.07.2012
comment
@Tarasov: рад, что это помогло :) Если это сработает, вы также можете принять ответ. Ваше здоровье. - person Paolo Tedesco; 24.07.2012
comment
У меня была вторая ошибка в моем коде с UserID = s.GetDirectoryEntry().NativeGuid. Я должен использовать UserID = s.GetDirectoryEntry().Guid^^ - person Tarasov; 24.07.2012
comment
Чтобы принять ответ, под дисплеем голосования должна быть отметка. О разнице между NativeGuid и Guid см. stackoverflow.com/questions/1644989/ - person Paolo Tedesco; 24.07.2012