[很简单]获得ActiveDirectory中所有用户的详细信息
2005-11-16 18:46 Ben 阅读(835) 评论(0) 收藏 举报很简单的代码,列出AD中所有Person的详细信息(根据获得所有属性,你可以为你的应用程序添加“从域中导入用户资料”的功能,当然,也可以将你的应用程序和域进行集成)。
下载示例代码:/Files/BenSoft/ADTest.rar
为您的工程添加 System.DirectoryServices 引用;
获得Person信息的代码片断如下:
private void btnGet_Click(object sender, System.EventArgs e)
{
if(this.txtDomain.Text.Trim().Length > 0 )
{
try
{
DirectoryEntry de = new DirectoryEntry("LDAP://" + this.txtDomain.Text);
//DirectoryEntry de = new DirectoryEntry("LDAP://" + this.txtDomain.Text,this.txtAdminID.Text,this.txtPwd.Text) ;
//查询
DirectorySearcher src = new DirectorySearcher("(&(objectCategory=person)(objectClass=user))");
//根节点
src.SearchRoot = de;
//搜索范围包含所有子对象
src.SearchScope = System.DirectoryServices.SearchScope.Subtree;
StringBuilder strTemp = new StringBuilder() ;
//遍历所有搜索到的节点
foreach(SearchResult res in src.FindAll())
{
strTemp.Append("\r\n======================\r\n");
//显示所有属性名和属性值
foreach( string myKey in res.Properties.PropertyNames)
{
foreach( Object obj in res.Properties[myKey])
{
strTemp.Append(myKey + " : " + obj.ToString() + "\r\n" );
}
}
}
this.rtxtUser.Text = strTemp.ToString() ;
}
catch(Exception err)
{
throw(err);
}
}
else
{
MessageBox.Show("Please enter the domain name !");
}
}
很简的例子,了解更多AD以及.Net操作AD的信息可以查阅MSDN,liuhuimiao同志的几篇文档很不错的http://blog.joycode.com/liuhuimiao/category/934.aspx
另外,如果您在运行代码访问AD时候出现“服务器不可操作”的异常,您不妨将你IP设置为静态IP(不要DHCP自动获得)。
对于AD我也知之甚浅,欢迎大家一起交流学习。
/*****^*****^*****| Just do IT! | *****^*****^*****/

浙公网安备 33010602011771号