首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python ldap3 Search whenCreated

Python ldap3 Search whenCreated
EN

Stack Overflow用户
提问于 2021-02-09 03:48:19
回答 1查看 96关注 0票数 0

我试图搜索广告在特定日期创建的用户,它给了我所有的用户。如何过滤?

代码语言:javascript
复制
def creating_date(self, when_Created = "2020-03-11", attribute="whenCreated"):        
    """
    Queries for users created on specific date
    """
    connection = self.conn

    attributes = ["cn",  
                  "displayName",
                  "mail",
                  "whenCreated"]

    search_filter = f"(&(objectClass=person))"
    connection.search(self.search_base, search_filter, attributes=attributes)

    entry = self.conn.entries

    try:
        return entry

    except (IndexError):
        return "{}"

请给我建议。

EN

回答 1

Stack Overflow用户

发布于 2021-02-09 17:00:36

必须构造包含whenCreated属性和传递给该方法的when_Created值的search_filter。

如下所示:

代码语言:javascript
复制
ldapFilter = ldap.filter.escape_filter_chars(when_Created)
search_filter = f"(&(objectClass=person)(whenCreated=" + ldapFilter + "))"

请注意,尽管您只能连接when_Created值,但使用escape_filter_chars()可以防止代码注入。

编辑:

我刚刚查看了我自己的一个脚本,它使用ldap.filter.filter_format()构造过滤器:https://www.python-ldap.org/en/python-ldap-3.3.0/reference/ldap-filter.html#ldap.filter.filter_format

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66108324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档