C# Active Directory连接失败
我需要一点帮助。我是active directory新手。我想用c连接我的active directory。下面是我编写的示例代码C# Active Directory连接失败,c#,.net,active-directory,C#,.net,Active Directory,我需要一点帮助。我是active directory新手。我想用c连接我的active directory。下面是我编写的示例代码 public void GetConnection() { var username = "xxxx"; var domain = "xxxx"; var password = "xxxx"; var path = "LDAP://xxxx/CN=xx"; DirectoryEntry de = new DirectoryE
public void GetConnection()
{
var username = "xxxx";
var domain = "xxxx";
var password = "xxxx";
var path = "LDAP://xxxx/CN=xx";
DirectoryEntry de = new DirectoryEntry(sDomain + "/" + sDefaultOU, sUsername, sServicePassword, AuthenticationTypes.ServerBind);
DirectorySearcher ds = new DirectorySearcher(de);
ds.Filter = "(&(objectClass=Users))";
var sr = ds.FindAll();
if (sr != null)
{
MessageBox.Show("success");
}
else
{
MessageBox.Show("error");
}
}
}
附近有一个未处理的异常
错误是:
System.DirectoryServices.dll中发生类型为“System.Runtime.InteropServices.COMException”的未处理异常
附加信息:未指定的错误
能帮我解决这个问题吗?提前感谢步骤1
**
步骤2
**
在主函数中,你需要写下面的函数
DirectorySearcher _searcher = null;
SearchResult result_user = null;
DirectoryEntry de = createDirectoryEntry();
object o = de.SchemaEntry;
_searcher = new DirectorySearcher(de, "(&(objectClass=user)(SAMAccountName=" + "user1" + "))");
if (_searcher != null)
{
result_user = _searcher.FindOne();
de.Close();
}
你想干什么?获取用户列表?是。从所有用户(如电话号码)获取所有a值。为DirectoryEntry的构造函数构造的值是什么?你在斯多曼和斯多姆有什么?
static DirectoryEntry createDirectoryEntry()
{
// create and return new LDAP connection with desired settings
//This is for ssl secure port for non secure port just make 636 as 389 and //change Authentication as None
DirectoryEntry ldapConnection = new DirectoryEntry("LDAP://mysystem.domain.com:636","Admin","Domain123",AuthenticationTypes.SecureSocketsLayer);
return ldapConnection;
}
DirectorySearcher _searcher = null;
SearchResult result_user = null;
DirectoryEntry de = createDirectoryEntry();
object o = de.SchemaEntry;
_searcher = new DirectorySearcher(de, "(&(objectClass=user)(SAMAccountName=" + "user1" + "))");
if (_searcher != null)
{
result_user = _searcher.FindOne();
de.Close();
}