c#目录服务同步不返回已更改的关系

时间:2014-10-23 08:16:53

标签: c# active-directory ldap directoryservices

我正在使用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
    }
}

1 个答案:

答案 0 :(得分:0)

  1. 请指定DirectorySearcher.PropertiesToLoad。只有更新了PropertiesToLoad中的任何属性,您才能以增量同步方式获取它们。

  2. 我记得DirSync的搜索根必须是命名上下文根对象。

  3. 更好地使用分页搜索。无论您设置为SizeLimit的值有多大。它只会返回最多1000或1500(忘记确切数字)的结果。

  4. 我的回答是基于.NET 3.5。