【问题标题】:LDAPPartial Date match in LDAP queryLDAP 查询中的 LDAPPartial 日期匹配
【发布时间】:2016-10-27 02:48:15
【问题描述】:

是否可以通过匹配日期来准备只考虑日和月的 LDAP 查询。

例如。

如果出生日期是 1989 年 9 月 28 日,那么在 LDAP 查询中应该过滤所有月份为 09 且日为 28 的身份。

感谢和问候,

马扬克

【问题讨论】:

    标签: ldap-query


    【解决方案1】:

    我认为答案将取决于属性及其语法。 如果出生日期是字符串,则可以根据子字符串进行匹配:

    (birthdate=28/09/*)
    

    但这假设所有日期都完全采用相同的字符串表示形式。

    对于数据和时间,LDAP 规范只定义了 GeneralizedTime 语法和相等的匹配规则。 但是,有一些 LDAP 目录服务器,例如 OpenDJ,已经扩展了匹配规则并允许将 GeneralizedTime 与它的一部分进行匹配。但是,并非所有服务器都支持此功能。

    假设生日是具有以下值20010928000000Z 的 GeneralizedTime 您可以像这样查询服务器:

    (birthDate:1.3.6.1.4.1.26027.1.4.7:=09M28D)
    

    【讨论】:

    • 您好,非常感谢您的回复。我们有 Active Directory LDS。日期表示为 19941215000000.0Z ,值类型为字符串。但我仍然无法使用 (birthDate:1.3.6.1.4.1.26027.1.4.7:=09M28D) 或 (birthdate = 28/09/*) 进行搜索
    • 日期为 19941215000000.0Z 是 GeneralizedTime(表示为字符串)。但是 Active Directory LDS 不支持这些扩展匹配规则。我认为 Active Directory LDS 无法让您按部分日期进行搜索。
    • 非常感谢您的回复。您提到的解决方案对我不起作用。一旦我在查询中放置通配符,搜索就会停止工作。请在下面找到有关属性描述的更多详细信息:FT-BirthDate 类型:字符串数字 OID:1.2.840.113556.1.6.1.1.26 语法 OID:1.3.6.1.4.1.1466.115.121.1.24 语法描述:通用时间我正在使用Apache Directory Studio 查看上述属性并查询 AD-LDS。问候,Mayank
    猜你喜欢
    • 2016-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多