Vít*_*ins 13 c# active-directory principalcontext
我已经有一段时间了,我总是得到:
System.DirectoryServices.AccountManagement.PrincipalServerDownException
我认为这意味着我的连接设置(连接字符串)是错误的.
当我在Active Directory所在的计算机上的cmd上写"dsquery server"时,我得到:
"CN = DCESTAGIO,CN =服务器,CN =事先默认站点名称,CN =站点,CN =配置,DC = estagioit,DC =本地"
我通过以下方式尝试了以下连接:
1:
PrincipalContext thisPrincipalContext = new PrincipalContext(ContextType.Domain, "192.168.56.101", "DC=estagioit,DC=local");
Run Code Online (Sandbox Code Playgroud)
2:
PrincipalContext thisPrincipalContext = new PrincipalContext(ContextType.Domain, "192.168.56.101/DC=estagioit,DC=local");
Run Code Online (Sandbox Code Playgroud)
3:
PrincipalContext thisPrincipalContext = new PrincipalContext(ContextType.Domain, "192.168.56.101/CN=DCESTAGIO,DC=estagioit,DC=local");
Run Code Online (Sandbox Code Playgroud)
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");
Run Code Online (Sandbox Code Playgroud)
5:
PrincipalContext thisPrincipalContext = new PrincipalContext(ContextType.Domain, "LDAP://192.168.56.101/CN=Users,DC=estagioit,DC=local");
Run Code Online (Sandbox Code Playgroud)
还有其他一些方法......
关于什么是错的以及我如何使这种连接起作用的任何想法?
PS:ip是正确的,因为我用它来ping并且它正在工作.
PPS:我真的非常需要这个工作,如果你有任何建议他们都欢迎.
mar*_*c_s 29
如果你看一下PrincipalContext构造函数的文档,应该很清楚:
public PrincipalContext(ContextType contextType, string name)
Run Code Online (Sandbox Code Playgroud)
要么
public PrincipalContext(ContextType contextType, string name, string container)
Run Code Online (Sandbox Code Playgroud)
所以你基本上需要:
ContextType.Domain)LDAP://前缀)所以尝试这样的事情:
PrincipalContext thisPrincipalContext =
new PrincipalContext(ContextType.Domain, "ESTAGIOIT");
Run Code Online (Sandbox Code Playgroud)
要么
PrincipalContext thisPrincipalContext =
new PrincipalContext(ContextType.Domain, null); // default domain
Run Code Online (Sandbox Code Playgroud)
要么
PrincipalContext thisPrincipalContext =
new PrincipalContext(ContextType.Domain, "ESTAGIOIT", "DC=estagioit,DC=local");
Run Code Online (Sandbox Code Playgroud)
要么
PrincipalContext thisPrincipalContext =
new PrincipalContext(ContextType.Domain, null, "CN=Users,DC=estagioit,DC=local");
Run Code Online (Sandbox Code Playgroud)