gpt4 book ai didi

c# - 如何使用 System.DirectoryServices.ActiveDirectory.Domain 类获取域别名

转载 作者:行者123 更新时间:2023-11-30 14:13:36 25 4
gpt4 key购买 nike

我们有一个全名的域名,例如长域名.com;此域名替换为 short 别名。可以使用 netapi32.dll 检索此别名,如下所示:

[DllImport("Netapi32.dll")]
static extern int NetApiBufferFree(IntPtr Buffer);

// Returns the domain name the computer is joined to, or "" if not joined.
public static string GetJoinedDomain()
{
int result = 0;
string domain = null;
IntPtr pDomain = IntPtr.Zero;
NetJoinStatus status = NetJoinStatus.NetSetupUnknownStatus;
try
{
result = NetGetJoinInformation(null, out pDomain, out status);
if (result == ErrorSuccess &&
status == NetJoinStatus.NetSetupDomainName)
{
domain = Marshal.PtrToStringAuto(pDomain);
}
}
finally
{
if (pDomain != IntPtr.Zero) NetApiBufferFree(pDomain);
}
if (domain == null) domain = "";
return domain;
}

此方法返回排序 值。但是使用 System.DirectoryServices.ActiveDirectory.Domain 类及其 Name 属性,我得到了 long-domainname.com 值。在 Debug模式下搜索属性,找不到任何 值字段或属性。 System.DirectoryServices.ActiveDirectory.Domain 类是否可行?或者可能有一些其他类的 System.DirectoryServices 命名空间?如何在不导入外部*.dll的情况下获取域名值?

最佳答案

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;
}

关于c# - 如何使用 System.DirectoryServices.ActiveDirectory.Domain 类获取域别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13814423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com