假设我们有这个背景
private static readonly PrincipalContext Context =
new PrincipalContext(ContextType.Domain, "255.255.255.252",
"OU=TestOrgUnit,DC=as,DC=asf",
"blabla", "12345");
我正在搜索此域中的用户。我将他们的名字命名为SomeNickName
,但他们应该是DomainName\SomeNickName
。
是否可以从DomainName
对象获取PrincipalContext
?我找到了DirectoryEntry
的解决方案,但无法将PrincipalContext
转换为其中。
此代码
DirectoryEntry deBase = new DirectoryEntry("255.255.255.252", "AdminLogin", "PWD");
和此代码
DirectoryEntry deBase = new DirectoryEntry("255.255.255.252://OU=TestOrgUnit,DC=as,DC=asf", "AdminLogin", "PWD");
抛出异常并且无法正常工作。
答案 0 :(得分:1)
从技术上讲,您在为连接OU指定的DN中有域信息(DC = as,DC = asf)。第一个DC是Win2K之前的名称,它似乎是您正在寻找的。 p>
就PrincipalContext本身包含域信息而言,它似乎并没有。
如果您想使用DE来获取更多属性或进行用户搜索,您需要像这样创建:
var deBase = new DirectoryEntry("LDAP://255.255.255.252/OU=TestOrgUnit,DC=as,DC=asf", "AdminLogin", "PWD")