如何检测DirectorySearcher的逻辑等效过滤器?

时间:2018-03-07 19:26:05

标签: c# ldap

System.DirectoryServices.DirectorySearcher类对它的Filter属性使用一个简单的字符串,所以我可以有两个不同的字符串,这些字符串彼此不相同,但它们将以完全相同的方式逻辑执行。是否有内置的方法来确定逻辑等效性?如果没有,有没有人解决过这个问题?

说明:我使用DirectorySearcher根据用户提供的过滤器从Active Directory返回相关数据。我正在计算对象和属性,并试图通过保持聚合值来阻止多次执行相同的查询来简化整个事情。

以下是DirectorySearcher的两个过滤器的简单示例,它们在逻辑上是等效的,但通过比较字符串无法测试:

"(&(objectClass=computer)(|(location=*)(!(department=*))))"
"(&(objectClass=computer)(|(!(department=*))(location=*)))"

我想说一句FilterA.LogicallyEquals(FilterB)

0 个答案:

没有答案