我们的系统具有“AutoLogin”功能。
因此,如果我在AD中创建一个新用户为“John” - 那么John就能够访问Intranet网站(我们查询AD以查看当前用户是否在AD中)。
但是
我们还有一个users
表(SQL Server),需要拥有新用户的FirstName
和LastName
。
我们希望每次在AD中创建新用户时更新Users
表 - 应运行一些C#代码以将相关数据输入SQL Server(以及其他一些内容)。
请问我能否抓住“创建AD的新用户”事件?
答案 0 :(得分:4)
查看Ryan Dunn的优秀博客文章:
Implementing Change Notifications in .NET
处理这个确切的主题。他提供三种选择:
并显示每个选项的优缺点,以及第三个选项的一些C#代码(更改通知)。
答案 1 :(得分:2)
您可以使用来自C#的System.DirectoryServices.Protocols。DirectoryNotificationControl来实现此目的,这样您就不必轮询AD以进行更改。
WMI可能是您可以深入研究的第二种解决方案。它存在AD WMI提供商。 Using WMI to Monitor AD为您提供了一些线索。到目前为止,本文所做的工作并不多,但我认为通过WMI事件,您可以创建所需的通知。您可以在Monitoring Active Directory Health,especialy Active Directory WMI Providers中找到有关此信息的Microsoft信息。
答案 2 :(得分:0)
如果不包含将新用户添加到某种c#例程中的实际功能,则不太可能捕获此类事件。如果沿着这条路线前进,可以同时将用于AD和mysql的用途添加。
另一种选择是轮询AD用户并针对现有的mysql用户进行检查,并在找到时添加新用户。