私はこれにしばらくの間取り組んできましたが、私はいつも次のようになっています:
System.DirectoryServices.AccountManagement.PrincipalServerDownException
これは、私の接続設定(接続文字列)が間違っていることを意味すると思います。
Active Directoryがあるコンピューターのcmdで「dsqueryサーバー」を作成すると、次のようになります。
「CN = DCESTAGIO、CN = SERVERS、CN = Default-First-Site-Name、CN = Sites、CN = Configuration、DC = estagioit、DC = local」
次の方法で次の接続を試みました。
1:
PrincipalContext thisPrincipalContext = new PrincipalContext(ContextType.Domain, "192.168.56.101", "DC=estagioit,DC=local");
2:
PrincipalContext thisPrincipalContext = new PrincipalContext(ContextType.Domain, "192.168.56.101/DC=estagioit,DC=local");
3:
PrincipalContext thisPrincipalContext = new PrincipalContext(ContextType.Domain, "192.168.56.101/CN=DCESTAGIO,DC=estagioit,DC=local");
4:
PrincipalContext thisPrincipalContext = new PrincipalContext(ContextType.Domain, "192.168.56.101/CN=DCESTAGIO,CN=SERVERS,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=estagioit,DC=local");
5:
PrincipalContext thisPrincipalContext = new PrincipalContext(ContextType.Domain, "LDAP://192.168.56.101/CN=Users,DC=estagioit,DC=local");
そして、他のいくつかの方法...
何が間違っているのか、この接続を機能させるにはどうすればよいですか?
PS:IPはpingに使用し、機能しているので正しいIPです。
PPS:何か提案があれば歓迎します。
PrincipalContext
コンストラクターのドキュメントを見ると、非常に明確なはずです。
public PrincipalContext(ContextType contextType, string name)
または
public PrincipalContext(ContextType contextType, string name, string container)
だからあなたは基本的に必要です:
ContextType.Domain
)LDAP://
プレフィックス)次のようなものを試してください:
PrincipalContext thisPrincipalContext =
new PrincipalContext(ContextType.Domain, "ESTAGIOIT");
または
PrincipalContext thisPrincipalContext =
new PrincipalContext(ContextType.Domain, null); // default domain
または
PrincipalContext thisPrincipalContext =
new PrincipalContext(ContextType.Domain, "ESTAGIOIT", "DC=estagioit,DC=local");
または
PrincipalContext thisPrincipalContext =
new PrincipalContext(ContextType.Domain, null, "CN=Users,DC=estagioit,DC=local");