C# - Active Directory组过滤器

时间:2014-04-11 21:04:43

标签: c# sql-server active-directory principalcontext

我使用此代码过滤了我的活动目录域组:

List<Department> result = new List<Department>();
using (PrincipalContext ctx = getContext())
{
    GroupPrincipal gp = new GroupPrincipal(ctx);
    PrincipalSearcher search = new PrincipalSearcher(gp);
    result = (from g in search.FindAll()
                where !g.DistinguishedName.Contains("CN=Builtin")
                select new Department()
                {
                    name = g.Name,
                    description = g.Description
                }).ToList();
}
return result;

正如您所看到的,我已经过滤了系统中包含的那些内置的内容。但是系统有一些类似于SQL Server创建的类型。我需要知道是否有办法只显示服务器管理员创建的那些。有没有办法做到这一点?

这是我的getContext代码:

public PrincipalContext getContext()
{
    return new PrincipalContext(ContextType.Domain, WebConfigurationManager.AppSettings["SERVER"].ToString(), WebConfigurationManager.AppSettings["DOMAIN"].ToString() + @"\" + WebConfigurationManager.AppSettings["USER"].ToString(), WebConfigurationManager.AppSettings["PASSWORD"].ToString());
}

服务器上的值是:

<add key="SERVER" value="192.168.1.2"/>
<add key="DOMAIN" value="intra"/>
<add key="USER" value="xxxxx"/>
<add key="PASSWORD" value="xxxxxxx"/>

1 个答案:

答案 0 :(得分:0)

SQL Server创建的组只是您计算机上的本地组 - 它们不在Active Directory中。您需要在本地商店中搜索这些内容。打开本地用户&amp;用于查看这些对象的组。