从Active Directory同步数据库

时间:2009-06-30 20:38:23

标签: active-directory

我想将我的用户数据库与活动目录中的用户和组同步。 我的应用程序从AD读取对象并将它们复制到数据库,但在AD更改时过期。

当对象发生变化时,有没有办法让活动目录通知我? C#示例代码会很棒。

法比奥

P.S。我使用的是Oracle数据库

3 个答案:

答案 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的副本,并将它与你当前的副本进行比较,只更新内容/如果需要,但你需要在任何一种情况下提取整个副本。