繁体   English   中英

Active Directory通知-如何确定更改是否是新用户

[英]Active Directory Notifications - how to tell if a change is a new user

我的AD通知运行正常,可以监视OU的更改(使用http://dunnry.com/blog/ImplementingChangeNotificationsInNET.aspx的更改通知程序)。 但是,当创建一个新用户时,会生成两个通知,而我很难区分这两个通知。 我的假设(很危险)是首先创建用户,然后修改用户,但我不认为是这种情况。

我最初的想法是使用uSNCreated和uSNChanged,但是即使在第一次通知时它们也有所不同。 类似地,两个条目的每个结果的whenCreated,WhenChanged和ModifyTimeStamp相同。

显然必须有一种方法可以执行此操作,但是我看不到任何可以唯一标识第二个通​​知的属性。

有什么线索吗?

这两个通知来自AD创建对象,然后为用户设置密码。

uSNChanged是前往此处的方法。 较高的值是最新的更改。 .NET中的技巧是在不使用棘手的Active Ds COM库的情况下转换该值。

有几个问题已经涉及以.NET友好的方式管理uSNChanged属性:

usnChanged基于一个计数器,只要您与同一个DC对话,该计数器就针对AD的每次更改进行增量更新。 对于更改数据,您可以采用两者中的较晚者并使用该记录。 要确定记录是否为新记录,您只需跟踪从先前收到的更改中看到的任何usnChanged中的最高记录,然后将usnCreated与之进行比较即可。 如果usnCreated更大,则为新记录。

您还可以将RootDSE中的maximumCommittedUSN用作比较的存储值,但这将需要在完成更改通知处理之后进行单独的查询。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM