C# 在(虚拟)服务器上查找LDAP域名
我有一些进程基本上需要当前LDAP提供商的域名,以便从AD同步用户信息 该过程会提示用户输入源LDAP服务器,但会提供有关默认服务器的信息,以便用户仅使用默认值 以下代码适用于用户工作站,但在服务器上失败:C# 在(虚拟)服务器上查找LDAP域名,c#,active-directory,ldap,logonserver,C#,Active Directory,Ldap,Logonserver,我有一些进程基本上需要当前LDAP提供商的域名,以便从AD同步用户信息 该过程会提示用户输入源LDAP服务器,但会提供有关默认服务器的信息,以便用户仅使用默认值 以下代码适用于用户工作站,但在服务器上失败: var uri = "LDAP://" + Environment.GetEnvironmentVariable("LOGONSERVER"); 我也试过了ldap://rootDSE 但引发了NotSupportedException: 提供程序不支持搜索,并且无法搜索LDAP://ro
var uri = "LDAP://" + Environment.GetEnvironmentVariable("LOGONSERVER");
我也试过了ldap://rootDSE 但引发了NotSupportedException:
提供程序不支持搜索,并且无法搜索LDAP://rootDSE
所以,我有几个问题:
为什么LOGONSERVER envvar在服务器上不可用?
我能做些什么呢?
在我看来,这是迈向真正LDAP服务器的垫脚石吗?
不确定LDAP域名意味着什么,但该域名可从属性中的LDAP根DSE获得:
defaultNamingContext: DC=YOURDOMAIN,DC=NET
C是一个广泛的主题,但我看到它显示了对rootDSE的访问,并特别显示了defaultNamingContext
-jim在进一步调查RootDSE后,我想出了以下代码:
using (DirectoryEntry rootDSE = new DirectoryEntry("LDAP://RootDSE"))
{
result = (rootDSE.Properties["dnsHostName"].Value ?? "").ToString();
if (result != "") return result;
}
它似乎能满足我的需要
然而,我上面的其余问题仍然没有答案