|
Last-modified: 2007-08-25 (土) 18:18:31 (6061d)
OpenLDAPへの接続で、ややハマリかけたのでメモを残しておきます。 ちなみに、添付したProgram.csは、OpenLDAP ServerからCSV形式でエントリを出力するツールです。 OpenLDAPから情報抽出 using System; using System.Collections.Generic; using System.Text; using System.DirectoryServices; namespace LDAPtoCSV { class Program { static void Main(string[] args) { if (args.Length != 2) { Console.WriteLine("Usage: LDAPtoCSV.exe <社員番号> <パスワード>"); return; } string strPath = "LDAP://hostname/ou=Users,dc=adniss,dc=jp"; string strUser = "uid=" + args[0] + ",ou=Users,dc=adniss,dc=jp"; string strPass = args[1]; DirectoryEntry drEntry = new DirectoryEntry(strPath, strUser, strPass, AuthenticationTypes.FastBind); try { // ADSI オブジェクトを取得する Object obj = drEntry.NativeObject; // LDAP検索オブジェクトを作成 DirectorySearcher drSearch = new DirectorySearcher(drEntry); // アカウントフィルターを設定 drSearch.Filter = "(uid=*)"; // Common Name(cn)プロパティを同時に // 取得するように設定 string[] outputs = { "cn" }; drSearch.PropertiesToLoad.AddRange(outputs); // 検索する SearchResultCollection scn = drSearch.FindAll(); if (scn == null) { Console.WriteLine("対象ユーザーがいません。"); return; } foreach (SearchResult sResult in scn) { Console.WriteLine("cn : " + sResult.Properties["cn"][0]); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } } } |