使用远程服务器上的 LdapConnection 类连接到 Active Directory

问题描述 投票:0回答:2

我有一个问题:我需要从远程服务器连接到 Active Directory,但代码必须使用

LdapConnection
类。我需要这个,因为这样我只能在发生某些事件时测试更改通知程序(例如用户被停用或他更改了组、数据等)。远程服务器操作系统为Windows Server 2012。

我设法使用

DirectoryServices
和以下代码从本地完成此操作:

String ldapPath = "LDAP://XRMSERVER02.a24xrmdomain.info";
directoryEntry = new DirectoryEntry(ldapPath, @"A24XRMDOMAIN\username", "pass");

//// Search AD to see if the user already exists.
DirectorySearcher search = new DirectorySearcher(directoryEntry);
search.Filter = "(&(objectClass=user))";
SearchResult result = search.FindOne();

这没问题,连接可以工作,但现在我需要使用

LdapConnection
类进行连接。

我尝试了很多方法,但没有一个对我有帮助:

LdapConnection connection = new LdapConnection(XRMSERVER02.a24xrmdomain.info);
var credentials = new NetworkCredential(@"A24XRMDOMAIN\username", "pass");             
connection.Credential = credentials;
connection.Bind();

它说凭据无效,但事实并非如此。

说明:

  • XRMSERVER02
    - 域控制器
  • a24xrmdomain.info
    - 域
  • A24XRMDOMAIN
    - 用于日志记录的域
c# .net active-directory ldap ldap-query
2个回答
2
投票

我遇到的问题是我有一个操作系统为 Windows Server 2012 和 Active Directory 的远程服务器。我需要通过本地计算机 (Windows 10) 连接它。

正如我在问题中所说,可以通过

DirectoryServices
使用以下代码来做到这一点:

String ldapPath = "LDAP://(DomainController).a24xrmdomain.info";
directoryEntry = new DirectoryEntry(ldapPath, @"DOMAIN\username","pass");

//// Test search on AD to see if connection works.
DirectorySearcher search = new DirectorySearcher(directoryEntry);
search.Filter = "(&(objectClass=user))";
SearchResult result = search.FindOne();

这是解决方案之一,但由于我的任务是获取通知并识别 Active Directory 中的某些对象何时发生更改,因此我需要通过

LDAP
类连接到远程服务器上的 Active Directory。获取通知程序的代码取自:

我成功通过下一个代码与

LDAP
类连接:

String ldapPath2 = "(DomainController).a24xrmdomain.info";
LdapConnection connection = new LdapConnection(ldapPath2);
var credentials = new NetworkCredential(@"username", "pass");             
connection.Credential = credentials;
connection.Bind();

需要提及的是,机器人需要远程服务器的 IP 地址,只需要其上使用的域控制器,并且不需要用于日志记录的域。


1
投票

尝试使用带有 3 个参数的 NetworkCredential 构造函数:用户名、密码和域。与用户名分开指定域

© www.soinside.com 2019 - 2024. All rights reserved.