阅读量:0
在C#中,要实现Active Directory(活动目录)的数据同步,你可以使用.NET Framework中的System.DirectoryServices命名空间。这个命名空间提供了与Active Directory交互的类和方法。以下是一个简单的示例,展示了如何使用C#连接到Active Directory并获取用户信息:
首先,确保你的项目已经引用了System.DirectoryServices.dll。
然后,编写以下代码:
using System; using System.DirectoryServices; namespace ActiveDirectorySync { class Program { static void Main(string[] args) { // 设置Active Directory服务器的LDAP路径 string ldapPath = "LDAP://your-ad-server"; // 创建DirectoryEntry对象,用于连接到Active Directory DirectoryEntry entry = new DirectoryEntry(ldapPath, "username", "password"); // 创建DirectorySearcher对象,用于搜索Active Directory DirectorySearcher searcher = new DirectorySearcher(entry); // 设置搜索过滤器,以获取所有用户 searcher.Filter = "(objectClass=user)"; // 执行搜索并获取结果 SearchResultCollection results = searcher.FindAll(); // 遍历结果并输出用户信息 foreach (SearchResult result in results) { // 获取用户的属性 DirectoryEntry userEntry = result.GetDirectoryEntry(); string firstName = userEntry.Properties["givenName"].Value.ToString(); string lastName = userEntry.Properties["sn"].Value.ToString(); string email = userEntry.Properties["mail"].Value.ToString(); // 输出用户信息 Console.WriteLine($"First Name: {firstName}"); Console.WriteLine($"Last Name: {lastName}"); Console.WriteLine($"Email: {email}"); Console.WriteLine("-----------------------------"); } // 关闭DirectoryEntry连接 entry.Close(); } } }
请注意,你需要将your-ad-server
、username
和password
替换为实际的Active Directory服务器地址和凭据。
这个示例展示了如何连接到Active Directory并获取所有用户的信息。你可以根据需要修改搜索过滤器和属性,以获取其他类型的数据。
如果你需要定期同步Active Directory数据,可以考虑使用Active Directory的更改通知功能,或者使用定时任务(如Windows任务计划程序)定期运行上述代码。