如何使用c#在未加入Microsoft Active Directory中的域时对ldap进行身份验证

时间:2009-05-12 15:24:35

标签: c# .net .net-2.0 ldap

由于某种原因,当计算机未加入域时,ldap和目录服务不起作用。来自.net的错误消息不可用。有人知道需要做什么吗?

基本...

 domainAndUsername = domain + @"\" + username;
 entry = new DirectoryEntry(_path, domainAndUsername, pwd);
 entry.AuthenticationType = FindAuthTypeMicrosoft(authType);
当尝试将testdomain.com提供给上面的代码时,

...在本地登录到计算机时似乎不起作用。

即使我可以在没有问题的情况下ping testdomain.com。有什么不同或问题?

3 个答案:

答案 0 :(得分:3)

此代码过去对我有用(虽然我承认我现在无法测试它):

DirectoryEntry entry = new DirectoryEntry("LDAP://server-name/DC=domainContext,DC=com");
entry.Username = @"DOMAIN\account";
entry.Password = "...";
DirectorySearcher searcher = new DirectorySearcher(entry);
searcher.Filter = "(&(objectClass=user)(sn=Jones))";
SearchResultCollection results = searcher.FindAll();

最困难的部分(无论如何)正在弄清楚“连接字符串”的细节。我通常依靠ADSI EditAD Explorer来帮助我弄清楚正确的值是什么。 Softerra LDAP Browser - 免费版本有点老了,v2.6并隐藏在下载部分。

答案 1 :(得分:0)

目录服务依赖于ActiveDirectory。因此,您需要将计算机添加到域或显式提供域控制器。请注意,域名不代表域名系统中的域名。它表示ActiveDirectory域。

答案 2 :(得分:0)

我将_path留空了。对不起我自己的问题。