在C#中为Active Directory排除PrincipalSearcher QueryFilter中的空结果

时间:2012-12-30 23:38:43

标签: c# active-directory

尝试在Active Directory中搜索用户的非空描述(意味着他们有一个职位),如下面的第4行所示,但我收到的错误是我无法使用排除!

另一种方法的建议?

PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
UserPrincipal qbeUser = new UserPrincipal(ctx);
PrincipalSearcher srch = new PrincipalSearcher(qbeUser);
var example = new UserPrincipal(ctx) { Description != null };

1 个答案:

答案 0 :(得分:3)

我会尝试这样的事情:

using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain))
{
    UserPrincipal qbeUser = new UserPrincipal(ctx);
    qbeUser.Description = "*";   // something, anything - just not empty/NULL

    PrincipalSearcher srch = new PrincipalSearcher(qbeUser);
     ......
}

这对你有用吗?基本上,只需在qbeUser上定义属性,并使用*作为通配符,表示您希望用户拥有Description属性中的内容 - 什么东西,什么都没有 - 只是没有。