Active directory 使用Directoryservices登录到特定的OU

Active directory 使用Directoryservices登录到特定的OU,active-directory,directoryservices,Active Directory,Directoryservices,我无法登录到控制台App中的特定OU。我猜我的LDAP字符串不知何故是不正确的,这是我测试应用程序的一些输出示例 这个很好用 Path: LDAP://my.domain User: DOMAIN\user Pass: mypass DOMAIN\user = Autenticated 但这些都不是 Path: LDAP://my.domain, ou=myou, dc=my, dc=domain User: user Pass: mypass Path: LDAP://my.domain/

我无法登录到控制台App中的特定OU。我猜我的LDAP字符串不知何故是不正确的,这是我测试应用程序的一些输出示例

这个很好用

Path: LDAP://my.domain User: DOMAIN\user Pass: mypass
DOMAIN\user = Autenticated
但这些都不是

Path: LDAP://my.domain, ou=myou, dc=my, dc=domain User: user Pass: mypass

Path: LDAP://my.domain/ou=myou User: user Pass: mypass

Path: LDAP://my.domain/ou=myou User: DOMAIN\user Pass: mypass
但是他们在VBS中工作。。我是不是搞错了什么,还是广告人对我的账户做了什么?所有我得到的是未知用户och错误的密码

它们都能工作,如果我去掉“ou”部分,那么进入我的域名就轻而易举了


关于

您的LDAP路径应该类似于:

LDAP://servername/ou=MyOU,dc=my,dc=domain
(您需要提供要用作DC的服务器名,作为域控制器)

或:

不能在LDAP字符串中指定要正确使用的用户名/密码。如果需要,您需要找到另一种方法来提供这些凭据(例如为
DirectoryEntry
选择正确的重载构造函数,它允许您指定用于连接AD的用户名/密码)

更新:

我认为您应该更改代码,使其工作如下:

string adPath = "LDAP://ou=myou,dc=my,dc=domain"; 
string adUser = "myuser";
string adPass = "mypass"; 

// you might need to play around with the "AuthenticationTypes" to get it to work
DirectoryEntry entry = new DirectoryEntry(adPath, adUser, adPass, AuthenticationTypes.None);  

DirectorySearcher searcher = new DirectorySearcher(entry); 

searcher.Filter = @"(objectClass=Person)"; 
string adPath = "LDAP://dc01.my.domain/ou=myou,dc=my,dc=domain"; 
我不确定像这样的LDAP字符串是否有效:

string adPath = "LDAP://my.domain/ou=myou,dc=my,dc=domain"; 
我模模糊糊地记得我必须使用一个服务器名(而不是域名)来实现这一点——类似这样:

string adPath = "LDAP://ou=myou,dc=my,dc=domain"; 
string adUser = "myuser";
string adPass = "mypass"; 

// you might need to play around with the "AuthenticationTypes" to get it to work
DirectoryEntry entry = new DirectoryEntry(adPath, adUser, adPass, AuthenticationTypes.None);  

DirectorySearcher searcher = new DirectorySearcher(entry); 

searcher.Filter = @"(objectClass=Person)"; 
string adPath = "LDAP://dc01.my.domain/ou=myou,dc=my,dc=domain"; 

感谢您的回答,我在“真正的应用程序”中尝试的是这样连接,但没有运气。。string adPath=“LDAP://my.domain,ou=myou,dc=my,dc=domain”;string adUser=“myuser”string adPass=“mypass”;DirectoryEntry=新的DirectoryEntry(adPath);DirectorySearcher search=新的DirectorySearcher(条目);searcher.Filter=@“(objectClass=Person)”;entry.Username=adUser;entry.Password=adPass@elwis:您的LDAP路径肯定不好-一开始就松开了
my.domain
-这样永远不会奏效…谢谢您的回答。但是无法让它工作,如果我跳过LDAP URL的“ou”部分,它们都可以工作。在VBScript中,它们甚至可以与“OU”部分一起工作,因此我认为LDAP url是正确的。我只需要将我的应用程序重写为脚本,谢谢你的帮助。你能在路径中发布OU的实际名称吗?也许有什么需要逃避的。好好睡上一晚才是诀窍。我注意到一个非常不友好的小角色在我的配置文件中潜入了我的LDAP路径。非常感谢。你到底想完成什么。“登录到OU”是不可能的嗨,布莱恩,不,我知道。但是我想更新一些Person对象,但只处理特定OU中的对象