在 C# 中发生 Active Directory 中的事件时通知我

Notify me when events in Active Directory occur in C#

我需要在使用 LDAP 协议的 Active Directory 中发生某些事件时收到通知。应该触发的事件是:

我搜索了整个互联网,但大多数解决方案都是基于本文末尾的代码:

正如那篇文章中提到的,有 3 种方法可以做到:

对于前两个选项,我在 Microsoft 的网站上找到了带有示例的文章,但所有示例都是用 C++ 编写的,而我需要用 C# 编写。

我找到的其他代码示例不完整且无法理解,因此我无法适当地使用它们。

是否有任何解决方案、代码示例等我可以使用,类似于所提供文章末尾的代码?

再一次,我在 C# 中需要这个

谢谢

我想分享我到目前为止所取得的成就。因此,由于我设法使用提供的文章中的第三种解决方案在我的活动目录上设置了通知程序:

  • Registering change notification with Active Directory using C#

我意识到(即使在 post 中提到)它可能只在域中注册 5 objects - 我不确定为什么,但服务器有一些限制.我用下一行代码解决了这个问题:

notifier.Register("dc=a24xrmdomain,dc=info",System.DirectoryServices.Protocols.SearchScope.Subtree);

也就是我设置了要观察的根域,设置了监测范围为System.DirectoryServices.Protocols.SearchScope.Subtree)-所有child的

我发现以这种方式监视 Active Directory 不是最佳做法,因为如果有很多用户 - 例如 10k,则不会触发所有更改。因此,由于您必须具有要监视的 object 的先前状态,因此您可以使用提供的 link 中的其他两种方法来完成此任务。例如,我假设您必须每 5 秒设置一些计时器,并检查 object.

的相应字段