如何从dns域名获得简短的“域名”?

原谅我,如果我对这个主题的理解有一些缺点,我只知道我所知道的关于域名和活动目录,因为我从与他们合作。

有两个不同的“版本”的域名。 首先是我称之为company.int (对于用户max@company.int)的DNS域名,其次是像prefixname (对于用户前缀名称\ max),并且它们都指的是相同的事情。

我的问题是,给“company.int”,如何将其转换为“prefixname”?

编辑:或者给定一个System.DirectoryServices.ActiveDirectory.Domain对象,如何获得前缀名?

编辑2:另外,是否有一个除此之外的“prefixname”的名称? 我永远不知道该怎么称呼它。

编辑3:我试图得到的价值是相同的值显示在“login到”(它列出的域和您的计算机)的Windowslogin屏幕上。

编辑4:我已经想通了以下几点可以得到的价值:

SecurityIdentifier sid = GetCurrentUserSID(); string prefixName = sid.Translate(typeof(NTAccount)).Value.Split('\\')[0]; 

有谁知道更好的方法来获得这个名字?

Solutions Collecting From Web of "如何从dns域名获得简短的“域名”?"

这应该做到这一点,我希望:

  private string GetNetbiosDomainName(string dnsDomainName) { string netbiosDomainName = string.Empty; DirectoryEntry rootDSE = new DirectoryEntry("LDAP://RootDSE"); string configurationNamingContext = rootDSE.Properties["configurationNamingContext"][0].ToString(); DirectoryEntry searchRoot = new DirectoryEntry("LDAP://cn=Partitions," + configurationNamingContext); DirectorySearcher searcher = new DirectorySearcher(searchRoot); searcher.SearchScope = SearchScope.OneLevel; searcher.PropertiesToLoad.Add("netbiosname"); searcher.Filter = string.Format("(&(objectcategory=Crossref)(dnsRoot={0})(netBIOSName=*))", dnsDomainName); SearchResult result = searcher.FindOne(); if (result != null) { netbiosDomainName = result.Properties["netbiosname"][0].ToString(); } return netbiosDomainName; } 

你基本上称之为“mydomain.com”,应该找回netbios域名,例如“MYDOMAIN”(通常)。

渣子

据我所知, prefixname始终是company.int (即公司 )的第一个标签。

你在寻找System.DirectoryServices.DirectoryEntry.Path ?

而prefixname就是域名

编辑:怎么样Environment.UserDomainName?