OpenLDAPへの接続で、ややハマリかけたのでメモを残しておきます。
 添付したProgram.csは OpenLDAP ServerからCSV形式で抽出するツール です。
キモは、AuthenticationTypesを設定することでしょうかね? すると、ADSIオブジェクト取得時にCOMExceptionがスローされなくなります。

 ちなみに、添付した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);
             }
         }
     }
 }

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS