C# 如何在c中检测Active Directory路径#

C# 如何在c中检测Active Directory路径#,c#,active-directory,C#,Active Directory,我一直在互联网上搜索,学习如何与Active Directory交互。我找到了下面的一段代码,但我想知道ActiveDirectoryPath必须是什么 欢迎对代码进行任何简要说明 DirectoryEntry entry = new DirectoryEntry(ActiveDirectoryPath); DirectorySearcher search = new DirectorySearcher(entry); search.Filter = String.Format("(&

我一直在互联网上搜索,学习如何与Active Directory交互。我找到了下面的一段代码,但我想知道
ActiveDirectoryPath
必须是什么

欢迎对代码进行任何简要说明

DirectoryEntry entry = new DirectoryEntry(ActiveDirectoryPath);
DirectorySearcher search = new DirectorySearcher(entry);

search.Filter = String.Format("(&(objectCategory=group)(cn={0}))", activeDirectoryGroup);
search.PropertiesToLoad.Add("distinguishedName");
SearchResult searchResult = search.FindOne();

if (searchResult == null)
    return new HashSet<User>();

DirectoryEntry group = searchResult.GetDirectoryEntry();
Hashtable searchedGroups = new Hashtable();
return GetUsersInGroup(group.Properties["distinguishedName"].Value.ToString(), searchedGroups, path);
DirectoryEntry=新的DirectoryEntry(ActiveDirectoryPath);
DirectorySearcher search=新的DirectorySearcher(条目);
search.Filter=String.Format((&(objectCategory=group)(cn={0})),activeDirectoryGroup);
search.PropertiesToLoad.Add(“DiscrimitedName”);
SearchResult SearchResult=search.FindOne();
if(searchResult==null)
返回新的HashSet();
DirectoryEntry组=searchResult.GetDirectoryEntry();
Hashtable searchedGroups=新Hashtable();
返回GetUsersInGroup(group.Properties[“DifferentizedName”].Value.ToString(),searchedGroups,path);

不完全清楚检测Active Directory路径是什么意思-实际上没有“当前”广告路径或任何东西;在您的文件系统中没有类似的“当前目录”

您可以通过检查
LDAP://RootDSE
条目并在其中查找
defaultNamingContext
来确定系统默认路径:

using (DirectoryEntry deRoot = new DirectoryEntry("LDAP://RootDSE"))
{
    if (deRoot.Properties["defaultNamingContext"] != null)
    {
        string defaultNamingContext = 
               deRoot.Properties["defaultNamingContext"].Value.ToString();
    }
}
或者,您可以从Active Directory检索当前登录的用户,并检查其LDAP路径(此代码在.NET 3.5及更新版本上使用新的
System.DirectoryServices.AccountManagement
命名空间):

这将返回用户的完整LDAP路径,其中包含在其中创建用户的“容器”-类似于:

LDAP://CN=User Name,OU=SomeOU,DC=YourCompany,DC=Com

这里的
OU=SomeOU,DC=YourCompany,DC=Com
部分是该用户所在的Active Directory中的“路径”。

此代码对终端访问服务器有效吗?如果是,我该怎么做?
LDAP://CN=User Name,OU=SomeOU,DC=YourCompany,DC=Com