【发布时间】:2022-01-26 11:10:41
【问题描述】:
我想使用 C# 从 Active Directory 获得增量更改,为此我正在尝试构建一个解决方案,如下文所述(使用 DirSync 控件)。
https://docs.microsoft.com/en-us/windows/win32/ad/polling-for-changes-using-the-dirsync-control
但是,我面临以下问题:
- 使用以下代码时,我收到
The user has insufficient access rights的异常。该用户是管理员组的成员。
还需要向该帐户授予什么权限?以及如何?
LdapConnection connection = new LdapConnection("adfs.fed.zzz.com");
connection.SessionOptions.ProtocolVersion = 3;
connection.Credential = new System.Net.NetworkCredential("adfsfed\\username", "password");
connection.AuthType = AuthType.Basic;
connection.Bind();
var filter = "(&(objectClass=*))";
var searchRequest = new SearchRequest("", filter, SearchScope.Subtree, properties);
DirSyncRequestControl dirSyncRC = new DirSyncRequestControl(null, DirectorySynchronizationOptions.None);
searchRequest.Controls.Add(dirSyncRC);
var response = connection.SendRequest(searchRequest) as SearchResponse;
- 如果我使用下面的代码,那么我不会收到任何异常,但会在 cookie 中得到空结果。
String[] properties = { "objectGUID", "sAMAccountName", "displayName", "mail", "member" };
String filter = "(|(objectClass=group)(objectClass=user))";
DirectorySearcher directorySearcher = new DirectorySearcher(myLdapConnection, filter, properties);
var dSynch = new DirectorySynchronization(System.DirectoryServices.DirectorySynchronizationOptions.None);
directorySearcher.DirectorySynchronization = dSynch;
directorySearcher.SearchScope = System.DirectoryServices.SearchScope.Subtree;
var results = directorySearcher.FindAll();
var cookie = dSynch.GetDirectorySynchronizationCookie();
注意事项:
- 我只有一个域控制器
- 我是系统管理员。因此,我可以为用户分配适当的权限。
请帮忙。
【问题讨论】:
标签: active-directory ldap directoryservices adsi directorysearcher