我们产品的一位用户遇到了一个问题,该问题是由 AD 中配置对象的 DN 引起的。我们采用一种相当静态的查找方法来查找配置对象,因此失败了。
假设AD的域名是foo.bar.example.com
。因此,配置的预期DN应该是CN=Configuration,DC=foo,DC=bar,DC=example,DC=com
,对吗?
但不知何故,此用户的配置 DN 缺少一个值:
CN=Configuration,DC=bar,DC=example,DC=com
。
您知道我们如何重现此问题吗(或者它是否常见?)?
答案1
看起来根配置与 bar.example.com 域相关联,而 foo 只是一个子域。为确保万无一失,您可以通过编程获取配置可分辨名称:
// you may need to specify username/password here as well with another
// constructor overload. Try any of the following:
// DirectoryEntry root = new DirectoryEntry("LDAP://RootDSE", user, pwd);
// DirectoryEntry root = new DirectoryEntry("LDAP://ADServer/RootDSE");
// DirectoryEntry root = new DirectoryEntry("LDAP://ADServer/RootDSE", user, pwd);
DirectoryEntry root = new DirectoryEntry("LDAP://RootDSE");
string configDN = root.Properties["configurationNamingContext"].Value.ToString();