Last-modified: 2007-08-25 (土) 18:18:31 (6083d)

 OpenLDAPへの接続で、ややハマリかけたのでメモを残しておきます。
キモは、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);
            }
        }
    }
}

添付ファイル: fileProgram.cs 3767件 [詳細]

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