2014-02-11 41 views
0

我开发了一个小型应用程序,它从活动目录中读取用户信息。 在应用程序的开始,我用下面的过滤器LDAP OR条件 - 无效过滤器

search.Filter = "(&((&(objectCategory=Person)(objectClass=User)))(displayName=*" + username + "*))";

这工作得很好。

现在,我正在给用户一个选项来检索基于用户名或办公室或标题字段的员工详细信息。

我用来获取详细信息的查询如下,但不起作用。它抛出和异常

“搜索过滤器无效”。

(&((&(objectCategory=Person)(objectClass=User)))(|((displayName=*" + username + "*)(l = *" + location + "*)(title=*" + title + "*))))"; 

举例:retieve员工的详细信息基于位置:海得拉巴 运行时查询看起来像这样

(&((&(objectCategory=Person)(objectClass=User)))(|((displayName=**)(l = *hyder*)(title=**)))

搜索过滤器无效。

+0

保留C#语言标记,不要放在标题中! – Filburt

回答

0

我想,你的意图是不明确的,你正在寻找的是更多的东西一样:

(&(objectCategory =人)(objectClass的=用户)(|(显示名= SAM) (L = 位置)(标题= 标题)))

Which could be visualized as: 
(& 
    (objectCategory=Person) 
    (objectClass=User) 
    (| 
     (displayName=*sam*) 
     (l=*location*) 
     (title=*title*) 
    ) 
) 

当然,你需要把你的代码的参数,而不是显示的值。