Active Directory和网络ID

时间:2009-10-06 16:36:10

标签: asp.net active-directory

我知道我可以通过使用Windows NT网络域获取完全限定的域名。我想做相反的事情: 例如:User.Identity.Name =“slaterock \ fflintstone”; Active Directory返回slaterock.bedrock.us.com的完全限定域名。 我希望能够通过该用户查询Active Directory(LDAP)来获取User.Identity.Name的域部分。我会使用用户的电子邮件地址: (及(objectClass的=用户)(objectCategory =人)(mail=fred.flintstone@slaterock.com))

我在返回AD属性方面没有遇到任何问题,但我无法找出我拥有的属性与User.Identity.Name中返回的域名之间的绝对链接。我在域组件中看到它的一部分(DC = slaterock,DC = bedrock,DC = US,DC = blah,blah)但我需要直接链接。

由于

1 个答案:

答案 0 :(得分:1)

首先,要明确一些术语(并帮助您进行任何搜索):

  • 'slaterock \ fflintstone'中的'slaterock'是域的NetBIOS域名。
  • 'DC = slaterock,DC = bedrock,DC = US,DC = blah,blah'是域的defaultNamingContext。
  • CN = fred flinstone,OU = Quarry1,DC = slaterock,DC = bedrock,...是用户帐户的distinguishedName。

要从用户的distinguishedName转换为其域的NetBIOS域名,请执行以下操作:

  • 获取用户帐户的distinguishedName并将其删除以获取defaultNamingContext。
  • 然后对容器进行搜索:“CN = Partitions,CN = Configuration,DC = JohnLewis,DC = co,DC = uk” 对于具有与上面的defaultNamingContext匹配的nCName值的对象。
  • 获取该对象的nETBIOSName属性,您就拥有了所拥有的内容。