C# 获取所有用户';在C中从active directory中删除组#

C# 获取所有用户';在C中从active directory中删除组#,c#,active-directory,active-directory-group,C#,Active Directory,Active Directory Group,我试图用c#代码获取active directory中的所有用户组 这是我的代码: private List<GroupPrincipal> GetGroups() { string userName = User.Identity.Name; string host = Request.Url.Host.ToLower(); List<GroupPrincipal> result = new List<GroupPrincipal>(

我试图用c#代码获取active directory中的所有用户组

这是我的代码:

private List<GroupPrincipal> GetGroups()
{
    string userName = User.Identity.Name;
    string host = Request.Url.Host.ToLower();
    List<GroupPrincipal> result = new List<GroupPrincipal>();

    UserPrincipal user = UserPrincipal.FindByIdentity(new PrincipalContext(ContextType.Domain, host), IdentityType.SamAccountName, userName);
    foreach (GroupPrincipal group in user.GetGroups())
    {
        result.Add(group);
    }
    return result;
}
private List GetGroups()
{
字符串userName=User.Identity.Name;
string host=Request.Url.host.ToLower();
列表结果=新列表();
UserPrincipal user=UserPrincipal.FindByIdentity(新PrincipalContext(ContextType.Domain,host),IdentityType.SamAccountName,用户名);
foreach(user.GetGroups()中的GroupPrincipal组)
{
结果:添加(组);
}
返回结果;
}
我在以UserPrincipal user开头的行上收到一个错误,表示服务器无法连接。我正在从服务器本身运行代码,以便连接它

我做错了什么


提前谢谢你

要连接Active Directory,请创建PrincipalContext对象

PrincipalContext insPrincipalContext = new PrincipalContext(ContextType.Domain, "MyDomain", 
                                   "DC=MyDomain,DC=com");
获取所有组的代码: 创建GroupPrincipal对象并调用SearchGroups(),它返回给定域的所有组的列表

     private void ListGroups(){
       GroupPrincipal insGroupPrincipal = new GroupPrincipal(insPrincipalContext);
       insGroupPrincipal.Name = "*";
       SearchGroups(insGroupPrincipal);}

    private void SearchGroups(GroupPrincipal parGroupPrincipal)
    {
        List<Principal> oList = new List<Principal>();
        PrincipalSearcher insPrincipalSearcher = new PrincipalSearcher();
        insPrincipalSearcher.QueryFilter = parGroupPrincipal;
        PrincipalSearchResult<Principal> results = insPrincipalSearcher.FindAll();
        foreach (Principal p in results)
        {
            oList.Add(p);
        }
    }
private void列表组(){
GroupPrincipal InGroupPrincipal=新的GroupPrincipal(InPrincipalContext);
insGroupPrincipal.Name=“*”;
SearchGroups(insGroupPrincipal);}
私有无效搜索组(GroupPrincipal parGroupPrincipal)
{
List oList=新列表();
PrincipalSearcher InPrincipalSearcher=新PrincipalSearcher();
insPrincipalSearcher.QueryFilter=parGroupPrincipal;
PrincipalSearchResult results=insPrincipalSearcher.FindAll();
foreach(结果中的主要p)
{
增加(p);
}
}
此链接还将帮助您-

您是从web应用程序执行此操作的吗?是的,我是。我正在使用asp应用程序