我想将我的用户数据库与活动目录中的用户和组同步。 我的应用程序从AD读取对象并将它们复制到数据库,但在AD更改时过期。
当对象发生变化时,有没有办法让活动目录通知我? C#示例代码会很棒。
法比奥
P.S。我使用的是Oracle数据库
答案 0 :(得分:2)
AD通知不存在。只需每N分钟拉一次数据。
答案 1 :(得分:2)
ActiveDirectory用户帐户具有'whenCreated'和'whenChanged'属性。如果要同步大量用户帐户并且性能是一个问题,那么您可以查询ActiveDirectory并过滤掉自上次成功同步以来已更改的记录。
这些属性的语法是(最后的大写字母Z是强制性的,表示祖鲁时间,与GMT相同):
YYYY MM DD HH mm ss.s Z
2009 06 30 00 00 00.0 Z
要搜索在2009年6月30日当天或之后创建的所有用户,您可以使用此LDAP查询:
(&(objectClass=User)(whenChanged>=20090630000000.0Z))
执行同步的代码需要负责记录最后的同步时间。
答案 2 :(得分:1)
目前,当某些内容发生变化时,AD无法通知您 - 您必须经常刷新。你可以设置一些东西来拉取AD的副本,并将它与你当前的副本进行比较,只更新内容/如果需要,但你需要在任何一种情况下提取整个副本。