- - PR -
【C#】AD連携について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-10-21 16:34
いつもお世話になっております。
AD連携サービスについて教えてください。 ADに参加しているクライアントPC上のアプリから 現在クライアントPCでログオンしているユーザのAD標準スキーマ情報 (名前、電話番号、メールアドレス)を取得する方法を調べています。 調査したところDirectoryEntryやDirectorySearcherを使用するということはわかり、 下記のように実装しました。 (LDAP接続文字列の形式をよくわかっていません。 動かないので、きっとバグってます...) ●質問1 ログオンしているユーザのAD連携時にユーザ入力させずにユーザ名と パスワード情報を自動で取得する方法はあるんでしょうか? ●質問2 下記ソースで例外が発生しています。 可能であれば、何が悪いかご指摘をお願いします。 LDAP接続文字列がまずい?と予想しているのですが、 『DC=』とか『CN=』とかの理解もいまいちなので... 自分では良くわかりません... 例外詳細:COMエラー『サーバから紹介が戻ってきました。』 〜〜〜ソースを下記に示します。〜〜〜 string ADpath = @"LDAP://CN=Users,DC=domain,DC=local"; string UserId = "username" //ログオンユーザのアカウント string passwd = "passwd"; //ログオンユーザのパスワード DirectoryEntry drEntry = new DirectoryEntry( ADpath,UserId, passwd); //↓ここで例外がスローされます。(例外:COMエラー『サーバから照会が戻ってきました。』) Object obj = drEntry.NativeObject; // LDAP検索オブジェクトを作成 DirectorySearcher drSearch = new DirectorySearcher(drEntry); // アカウントフィルターを設定 drSearch.Filter = ("(objectCategory=Person)"); drSearch.PropertiesToLoad.Add("userPrincipalName"); // 検索する SearchResultCollection scn = drSearch.FindAll(); if( scn == null) { MessageBox.Show("対象ユーザーがいません。"); return; } foreach( SearchResult sResult in scn) { MessageBox.Show((string)sResult.Properties["userPrincipalName"][0]); } 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 以上、お忙しいとは思いますが、よろしくお願いいたします。 |
1