从 PrincipalContext 获取域名
Get domain name from PrincipalContext
假设我们有这个上下文
private static readonly PrincipalContext Context =
new PrincipalContext(ContextType.Domain, "255.255.255.252",
"OU=TestOrgUnit,DC=as,DC=asf",
"blabla", "12345");
我正在搜索此域中的用户。我得到他们的名字 SomeNickName
,但他们应该是 DomainName\SomeNickName
。
是否可以从 PrincipalContext
对象中获取 DomainName
?我找到了 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");
抛出异常并且不起作用。
所以从技术上讲,您在为连接 OU (DC=as,DC=asf) 指定的 DN 中拥有域信息。第一个 DC 是 pre-Win2K 名称,这似乎是您要查找的名称。
就包含域信息的 PrincipalContext 本身而言,它似乎没有。
如果您想使用 DE 获取更多属性或进行用户搜索,您需要像这样创建它:
var deBase = new DirectoryEntry("LDAP://255.255.255.252/OU=TestOrgUnit,DC=as,DC=asf", "AdminLogin", "PWD")
假设我们有这个上下文
private static readonly PrincipalContext Context =
new PrincipalContext(ContextType.Domain, "255.255.255.252",
"OU=TestOrgUnit,DC=as,DC=asf",
"blabla", "12345");
我正在搜索此域中的用户。我得到他们的名字 SomeNickName
,但他们应该是 DomainName\SomeNickName
。
是否可以从 PrincipalContext
对象中获取 DomainName
?我找到了 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");
抛出异常并且不起作用。
所以从技术上讲,您在为连接 OU (DC=as,DC=asf) 指定的 DN 中拥有域信息。第一个 DC 是 pre-Win2K 名称,这似乎是您要查找的名称。
就包含域信息的 PrincipalContext 本身而言,它似乎没有。
如果您想使用 DE 获取更多属性或进行用户搜索,您需要像这样创建它:
var deBase = new DirectoryEntry("LDAP://255.255.255.252/OU=TestOrgUnit,DC=as,DC=asf", "AdminLogin", "PWD")