C# 在C中使用DirSync不仅返回更改的值#

C# 在C中使用DirSync不仅返回更改的值#,c#,active-directory,ldap,synchronization,C#,Active Directory,Ldap,Synchronization,我将System.DirectoryServices.Protocols.DirSyncRequestControl与cookie一起使用,以仅同步自上次从Active Directory同步到SQL数据库以来更改的对象。在第一次同步(cookie为null)时,everythings可以正常工作,但在以后的diff sync中,搜索只返回对象的更改属性,而不是我请求的全部属性列表 SearchRequest Request = new SearchRequest(RootDSE.Propert

我将System.DirectoryServices.Protocols.DirSyncRequestControl与cookie一起使用,以仅同步自上次从Active Directory同步到SQL数据库以来更改的对象。在第一次同步(cookie为null)时,everythings可以正常工作,但在以后的diff sync中,搜索只返回对象的更改属性,而不是我请求的全部属性列表

SearchRequest Request = new SearchRequest(RootDSE.Properties["defaultNamingContext"].Value.ToString(), "(|(objectClass=user)(objectClass=group)(objectClass=contact))", System.DirectoryServices.Protocols.SearchScope.Subtree, propertiesToLoad);
                    DirSyncRequestControl DirSyncRC = new DirSyncRequestControl(cookie, System.DirectoryServices.Protocols.DirectorySynchronizationOptions.None, Int32.MaxValue);
                    Request.Controls.Add(DirSyncRC);

                    SearchResponse SearchResponse = (SearchResponse)Connection.SendRequest(Request);

                    foreach (SearchResultEntry Entry in SearchResponse.Entries)
                    {
    ...
    }
我认为将DirectorySynchronizationOptions设置为None会起作用,但不幸的是,它不起作用

那么,如果某个属性发生更改,是否有一种方法可以始终返回一整套已定义的属性


提前感谢

Dirsync控件将只返回已更改的属性。要获取其他用户属性,您有2个选项: 1.进行额外的LDAP查询以检索所需的属性。 2.使用基于usn的更改跟踪技术