我正在使用C#与AD合作(Win 2012R2)。 我们正在将AD用户,组及其与SQL数据库的关系同步。 完全同步效果很好。 但是在使用同步cookie时,未检测到关系更改。 可能是什么原因? 谢谢。 这是我的代码:
public void DirSyncChanges(DirectoryEntry de, byte[] cookie)
{
DirectorySynchronization syncData = new DirectorySynchronization(cookie);
srch = new DirectorySearcher(de)
{
Filter = "(&(objectClass=user)(objectCategory=person))",
SizeLimit = Int32.MaxValue,
Tombstone = true
};
srch.DirectorySynchronization = syncData;
syncData.Option = DirectorySynchronizationOptions.None;
using(SearchResultCollection results = srch.FindAll())
foreach (SearchResult res in results)
{
//results is empty. no loop
}
}
答案 0 :(得分:0)
请指定DirectorySearcher.PropertiesToLoad。只有更新了PropertiesToLoad中的任何属性,您才能以增量同步方式获取它们。
我记得DirSync的搜索根必须是命名上下文根对象。
更好地使用分页搜索。无论您设置为SizeLimit的值有多大。它只会返回最多1000或1500(忘记确切数字)的结果。
我的回答是基于.NET 3.5。