2011-08-17 6 views
0

System.DirectoryServices.AccountManagementを使用してActive Directoryとシステムを統合しようとしています。私たちのITスタッフは、ADボックスをセットアップしています。私の開発ボックスは、この(または任意の)ドメインの一部ではありません。System.DirectoryServices.AccountManagementでユーザーまたはグループを検索する

これまでのところ、私はテストとして、コードの3行を持っている:上記のようPrincipalContextを作成

var pc = new PrincipalContext(ContextType.Domain, "machine", "CN=Administrator,CN=Users,DC=domain,DC=com", "Password"); 

    var user = UserPrincipal.FindByIdentity(pc, IdentityType.SamAccountName, "Administrator"); 

    var gp = GroupPrincipal.FindByIdentity(pc, IdentityType.SamAccountName, "Admins"); 

は動作しますが、私が代わりにサーバー名のドメイン名を使用しようとするならば、私が取得エラー:サーバーに接続できませんでした。だから、私はマシン名にこれを残しました。

ユーザーまたはグループを取得すると、次のエラーが表示されます。ローカルエラーが発生しました。ユーザーのために

は、私も同じ結果でこれを試してみました:全体的に、私は混乱している、だから、

var user = UserPrincipal.FindByIdentity(pc, IdentityType.DistinguishedName, "cn=Administrator,ou=users,dc=domain,dc=com"); 

:(

誰もが何か提案を持っていますよう

を? 「ローカルエラーが発生しました」と思ったプログラマを蹴散らしたいと思っています。

乾杯

PS:私のマシンからSysInternals AD Explorerを使用すると、私は使用しようとしているdnを見ることができます。

PPS:PrincipalContextを作成するときにmachine.domain.comを使用すると、接続に失敗します。

答えて

5

これは、ソリューションにハックした後で完璧な意味を持つものの1つです。問題は、コンテキストが構成されていないネゴシエートされたセキュリティコンテキストを使用しようとしていたことです。私はSimpleBindを使用するとそれだけで正常に動作します:

var pc = new PrincipalContext(ContextType.Domain, "machine", "DC=domain,DC=com", ContextOptions.SimpleBind, "CN=Administrator,CN=Users,DC=domain,DC=com", "Password"); 

乾杯

PS:より有益なエラーメッセージが日ヘッドが傷私を救っているだろう! 、現在のユーザーの資格情報を使用して検索を行うなどのドメインを指定することが

関連する問題