- PR -

activedirectory連携について(DirectoryEntryの設定について)

1
投稿者投稿内容
未記入
常連さん
会議室デビュー日: 2006/02/22
投稿数: 22
投稿日時: 2008-02-07 16:48
お世話になっております。

ActiveDirectory連携(Ldap認証)をWindowsアプリケーションで行おうとしております。
DirectoryEntryにAdのパス、認証するユーザID、パスワードを下記のように設定しております。(AD:sample.example.com)
string strPath = @"ldap://IP:389/dc=sample,dc=example,dc=com";
string strUser = @"cn=administrator,cn=users,dc=sample,dc=example,dc=com";
string strPass = @"admin";
DirectoryEntry drEntry = new DirectoryEntry(strPath, strUser, strPass, AuthenticationTypes.FastBind);

その後に
// ADSI オブジェクトを取得する
Object obj = drEntry.NativeObject;

を実行すると、

System.Runtime.InteropServices.COMException (0x80005000): 不明なエラー (0x80005000)
場所 System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
場所 System.DirectoryServices.DirectoryEntry.Bind()

となってしまいます。

色々認証時の属性の値を変えてみましたが、うまくいきません。
何方か詳しい方いらっしゃいましたら、お教えください。

ちなみにLdapブラウザからは、繋がります。

[ メッセージ編集済み 編集者: 未記入 編集日時 2008-02-07 17:51 ]
未記入
大ベテラン
会議室デビュー日: 2006/12/15
投稿数: 157
投稿日時: 2008-02-07 18:17
原因は別にありそうだけど一個だけ気になったトコを。

http://msdn2.microsoft.com/ja-jp/library/system.directoryservices.directoryentry.path(VS.80).aspx
「Path のプロバイダを識別するセクション ("://" の前) では、大文字と小文字が区別されます。たとえば、"LDAP://" または "WinNT://" のようになります。」
未記入
常連さん
会議室デビュー日: 2006/02/22
投稿数: 22
投稿日時: 2008-02-07 19:21
お返事有難うございます。

おっしゃるとおりでした。ldapの文字をLDAPにしたところ、うまく実行することができました。本当に聞いてよかったです。有難うございます。

ちなみにこれでいいんですが、、IP、ポートを指定しないで、dc=sample,dc=example,dc=comの部分だけをpathに設定する事は、できるのでしょうか。
LDAP://dc=sample,dc=example,dc=com
こうやったところ、ドメインが存在しないか、アクセスできませんと言われました。

すみませ〜ん。
未記入
大ベテラン
会議室デビュー日: 2006/12/15
投稿数: 157
投稿日時: 2008-02-08 10:59
ドメイン指定無しでドメイン コンポーネントだけ取りたいってコト?
ドメイン一つずつ総当りにしないとダメぢゃないかな。

固定で現在のドメインの中だけ見るなら、リンク先にサンプルがあったと思うのでチェックして見て下さい。

ActiveDirectoryは使ったことも無いので、これにて失礼。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2008-02-08 11:34
LDAP ADsPath

Hostname を省略した場合には制限を受けます。
_________________
1

スキルアップ/キャリアアップ(JOB@IT)