Active directory C#连接检查并获取用户详细信息

Active directory C#连接检查并获取用户详细信息,c#,asp.net,active-directory,ldap,ldapconnection,C#,Asp.net,Active Directory,Ldap,Ldapconnection,在Active directory中,我正在尝试连接到LDAP服务器,并尝试检查userus是否有效。但是下面的代码抛出异常错误。 我不知道我哪里出错了。。即使连接是否正确。我尝试使用相同的连接名和密码进入Apache目录工作室,我能够成功连接该工作室,但没有通过代码。它从myLdapConnection引发异常。请检查我哪里出错了。我在Apache directory studio中使用的连接是安全连接。。我是否需要指定ldapldap或ldap将起作用 public void GetAllA

在Active directory中,我正在尝试连接到
LDAP
服务器,并尝试检查
user
us是否有效。但是下面的代码抛出异常错误。 我不知道我哪里出错了。。即使连接是否正确。我尝试使用相同的连接名和密码进入
Apache目录工作室
,我能够成功连接该工作室,但没有通过代码。它从
myLdapConnection
引发异常。请检查我哪里出错了。我在Apache directory studio中使用的连接是安全连接。。我是否需要指定ldap
ldap
或ldap将起作用

public void GetAllADUsers( string username)
{
    try
    {

        DirectoryEntry myLdapConnection = new DirectoryEntry();
myLdapConnection.Path = "LDAP://server:port/o=value";
myLdapConnection.Username = @"CN=cn,OU=ou,OU=Users,O=o";
myLdapConnection.Password = "password";

//myLdapConnection.AuthenticationType = AuthenticationTypes.Secure;

DirectorySearcher search = new DirectorySearcher(myLdapConnection) { Filter = ( "(&(objectClass=user)") };

     SearchResultCollection allResults = search.FindAll();
        if(allResults.Count == 0)
{

            Console.WriteLine("not found");
 }
else
{
Console.WriteLine ("found");
}
catch (Exception ex)
    {
        Console.WriteLine(ex.ToString());
    }
 }
注意如果我指定
=@“CN=CN,OU=OU,OU=Users,O=O”,则输入用户名
MyDapConnection引发了DirectorySearcherComeException,但如果仅传递用户名=cn表示cn值。。这给出了所有的值

例外情况


位于System.DirectoryServices.DirectoryEntry.Bind(布尔throwIfFail)\r\n位于System.DirectoryServices.DirectoryEntry.Bind()\r\n位于System.DirectoryServices.DirectoryEntry.get\u AdsObject()\r\n位于System.DirectoryServices.DirectorySearcher.FindAll(布尔findMoreThanOne)\r\n位于System.DirectoryServices.DirectorySearcher.FindAll()\r\n在_Default.GetAllADUsers(字符串用户名)

可以尝试将用户名设置为
joe吗。bloggs@company.com
?另外,什么是例外(除了ComException)?另外,
(&(objectClass=user)
是不正确的LDAP语法,请尝试
(objectClass=user)
@zaitsman执行相同的操作,但除了/o=textron.com
跨过非用户代码'System.DirectoryServices.DirectorySearcher.FindAll'线程'(0x22a0)已退出,代码为0(0x0)。线程'(0x20ac)已退出,代码为0(0x0).
您发布的内容不是例外。另外,您指定了什么用户名?@zaitsman请检查上面的帖子……如果尝试使用上面的内容,我已经编辑了例外和用户名,并且只有
cn
值都不起作用。您发布了堆栈跟踪的一部分;至于cn,您可以尝试使用吗user@company.com没有任何CN