2012-07-23 5 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(); 

今ではADで唯一のユーザーを見つけることができるGUIDのフィルタが必要です。あなたが知っていれば、私は、文字列のユーザーID =セッション[「ユーザーID」]で持っているこの検索のためのGUID。のtoString()あなたが検索する必要はありません

tarasov

答えて

17

は、あなたがオブジェクトに直接結合することができますGUID、例えば

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

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

チェックこのMSDNのエントリを:Using ObjectGUID to Bind to an Object

+0

ああ[OK]を、私は明日それをテスト;)私はあなたにそれが動作します[OK]を要求 – Tarasov

+0

を与えます! :)ありがとう – Tarasov

+0

@タラソフ:それは助けてうれし:)もしそれが動作する場合は、同様に答えを受け入れることができます。乾杯。 –

関連する問題