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