在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任務計劃程序)定期運行上述代碼。