活动目录C#连接检查并获取用户详细信息

时间:2014-08-13 09:31:17

标签: c# asp.net active-directory ldap ldapconnection

在Active目录中,我正在尝试连接到LDAP服务器并尝试检查user我们是否有效。但是下面的代码抛出了异常错误。 我不知道我哪里出错了。即使连接是否正确。我尝试了相同的连接名称和密码到我能够成功连接的Apache directory studio但不通过代码。它从myLdapConnection抛出异常请你检查我哪里出错了。我在Apache directory studio中使用的连接是安全连接..我是否需要指定LDAPS或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"; myLdapConnection抛出DirectorySearcherCOMException但是如果只传递用户名= cn 则意味着cn值..这给出了所有值

例外

在System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)\ r \ n位于System.DirectoryServices.DirectoryEntry.Bind()\ r \ n,位于System.DirectoryServices.DirectoryEntry.get_AdsObject()\ r \ n,位于System。 DirectoryServices.DirectorySearcher.FindAll(Boolean findMoreThanOne)\ r \ n在System.DirectoryServices.DirectorySearcher.FindAll()\ r \ n at _Default.GetAllADUsers(String username)

0 个答案:

没有答案