Ldap 如何在不排除空格的情况下排除值?

Ldap 如何在不排除空格的情况下排除值?,ldap,Ldap,在LDAP中,排除某个属性值也会自动排除空白值。编写LDAP查询以排除属性值而不排除空白值的最佳方法是什么?您可以使用以下搜索筛选器: (|)(!(属性=值))(!(属性=*)) 它排除attribute=value的对象,但不排除该属性值为空的对象。从技术上讲,查询排除的是没有值的条目和那些值为空的条目。@jwilleke这取决于您不查询的目录。我知道在Active Directory中,没有空白值(如果您尝试将某个值设置为空白值,其效果是删除该值)。我不知道OpenLDAP…@jwillek

在LDAP中,排除某个属性值也会自动排除空白值。编写LDAP查询以排除属性值而不排除空白值的最佳方法是什么?

您可以使用以下搜索筛选器:

(|)(!(属性=值))(!(属性=*))


它排除attribute=value的对象,但不排除该属性值为空的对象。

从技术上讲,查询排除的是没有值的条目和那些值为空的条目。@jwilleke这取决于您不查询的目录。我知道在Active Directory中,没有空白值(如果您尝试将某个值设置为空白值,其效果是删除该值)。我不知道OpenLDAP…@jwilleke在哪个LDAP实现中no value与空白值不同?我怀疑这种差异是否符合LDAP规范。与任何特定的LDAP实现无关,有些人的属性值实际上带有一个“”(空白字符串),甚至还有一个包含空值的属性值。@jwilleke在我的回答中,“空白值”指的是没有值,而不是定义为空格的值(ASCII 32)或null(ASCII 0)或任何其他字符,如制表符、换行符、回车符等。