当c#中活动目录中的事件发生时通知我

本文关键字:通知 事件 活动 | 更新日期: 2023-09-27 18:04:56

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

  • 用户关联某个AD组时。
  • 如果AD用户中的字段(如电话号码)发生了变化。

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

  • 使用c#向Active Directory注册变更通知

正如那篇文章中提到的,有三种方法可以做到这一点:

  • Using USNChanged
  • 使用DirSync控件
  • 并在页面末尾使用该代码。

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

我发现的其他代码示例是不完整和不可理解的,所以我不能适当地使用它们。

是否有任何解决方案,代码样本等,我可以使用类似的代码提供文章的结尾?

同样,我需要在c#

谢谢

当c#中活动目录中的事件发生时通知我

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

  • 使用c#向Active Directory注册变更通知

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

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

即设置要观察的根域,并设置监控范围为System.DirectoryServices.Protocols.SearchScope.Subtree) -所有子域。

我发现以这种方式监视Active directory并不是最佳实践,因为如果有很多用户(例如10k),并不是所有的更改都将被触发。因此,由于您必须具有要监视的对象的先前状态,因此可以使用提供的链接中的其他两个方法中的某些方法来完成此任务。例如,我假设您必须每隔5秒设置一些计时器,并检查对象的适当字段。