在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)