8

ASP.NETアプリケーションでは、ActiveDirectoryから情報を取得します。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();

ここで、ADで唯一のユーザーを見つけることができるGUIDを備えたフィルターが必要です。文字列にあるこの検索のGUIDUserID= Session ["UserID"]。toString()

タラソフ

4

1 に答える 1

22

検索する必要はありません。GUIDを知っている場合は、オブジェクトに直接バインドできます。

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

(実際のObjectGUIDに置き換えてください)。

このMSDNエントリを確認してください:ObjectGUIDを使用してオブジェクトにバインドする

于 2012-07-23T14:28:08.943 に答える