System.DirectoryServices.DirectorySearcher
类对它的Filter
属性使用一个简单的字符串,所以我可以有两个不同的字符串,这些字符串彼此不相同,但它们将以完全相同的方式逻辑执行。是否有内置的方法来确定逻辑等效性?如果没有,有没有人解决过这个问题?
说明:我使用DirectorySearcher
根据用户提供的过滤器从Active Directory返回相关数据。我正在计算对象和属性,并试图通过保持聚合值来阻止多次执行相同的查询来简化整个事情。
以下是DirectorySearcher
的两个过滤器的简单示例,它们在逻辑上是等效的,但通过比较字符串无法测试:
"(&(objectClass=computer)(|(location=*)(!(department=*))))"
"(&(objectClass=computer)(|(!(department=*))(location=*)))"
我想说一句FilterA.LogicallyEquals(FilterB)
。