我试图搜索广告在特定日期创建的用户,它给了我所有的用户。如何过滤?
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 "{}"请给我建议。
发布于 2021-02-09 17:00:36
必须构造包含whenCreated属性和传递给该方法的when_Created值的search_filter。
如下所示:
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
https://stackoverflow.com/questions/66108324
复制相似问题