C#获取AD用户信息

转自:http://blog.csdn.net/junjieking/article/details/6644872

private   const   string  domainName  =   " ms.com " ;
        
private   const   string  adAdmin  =   " administrator " ;
        
private   const   string  password  =   " pass@word1 " ;
        
private   const   string  ouName  =   " XX有限公司 " ;

        
private  DataTable GetADUsers()
        {
           DataTable dt 
=   new  DataTable();
           dt.Columns.Add(
" sAMAccountName " ); // 帐号
            dt.Columns.Add( " Name " ); // 姓名
            dt.Columns.Add( " mail " );  // 邮箱地址
            dt.Columns.Add( " OU " );   // 用户组织

            DirectoryEntry adRoot 
=   new  DirectoryEntry( " LDAP:// "   +  domainName, adAdmin, password, AuthenticationTypes.Secure);
           DirectoryEntry ou 
=  adRoot.Children.Find( " OU= "   +  ouName);

           DirectorySearcher mySearcher 
=   new  DirectorySearcher(ou);
           mySearcher.Filter 
=  ( " (objectClass=user) " );  // user表示用户,group表示组

            
foreach  (System.DirectoryServices.SearchResult resEnt  in  mySearcher.FindAll())
            {
                DataRow dr 
=  dt.NewRow();
                dr[
" sAMAccountName " =   string .Empty;
                dr[
" Name " =   string .Empty;
                dr[
" mail " =   string .Empty;
                dr[
" OU " =   string .Empty;

                DirectoryEntry user 
=  resEnt.GetDirectoryEntry();
                
if  (user.Properties.Contains( " sAMAccountName " ))
                {
                    dr[
" sAMAccountName " =  user.Properties[ " sAMAccountName " ][ 0 ].ToString();
                }
                
if  (user.Properties.Contains( " Name " ))
                {
                    dr[
" Name " =  user.Properties[ " Name " ][ 0 ].ToString();
                }
                
if  (user.Properties.Contains( " mail " ))
                {
                    dr[
" mail " =  user.Properties[ " mail " ][ 0 ].ToString();
                }
                
if  (user.Parent.Name  !=   string .Empty  &&  user.Parent.Name.IndexOf( ' = ' >   - 1 )
                {
                    
// 获取用户所在的组织单位
                       dr[ " OU " =  user.Parent.Name.Split( ' = ' )[ 1 ];
                }
                dt.Rows.Add(dr);
            }
            
return  dt;
        }
    }

如果想要知道用户信息中都包含哪些字段,可以foreach出来看看
      DirectoryEntry user  =  resEnt.GetDirectoryEntry();
      foreach  ( string  property  in  user.Properties.PropertyNames)
      {
          Console.WriteLine(
" 字段名:  "   +  property);
      }
        private DataTable GetADUsersAllProperty()
        {
            Boolean done = true;
            DataTable dt = new DataTable();
            DirectoryEntry adRoot = new DirectoryEntry("LDAP://" + domainName);           

           DirectorySearcher mySearcher = new DirectorySearcher(adRoot);
           mySearcher.Filter = ("(objectClass=user)"); //user表示用户,group表示组

            foreach (System.DirectoryServices.SearchResult resEnt in mySearcher.FindAll())
            {
                DirectoryEntry user = resEnt.GetDirectoryEntry();
                if (done)
                {
                    foreach (string property in user.Properties.PropertyNames)
                    {
                        dt.Columns.Add(property);
                    }
                    done = false;
                }

                DataRow dr = dt.NewRow();
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    if (user.Properties.Contains(dt.Columns[i].ColumnName))
                    {
                        dr[i] = user.Properties[dt.Columns[i].ColumnName][0].ToString();
                    }else dr[i] = string.Empty;
                }  
                dt.Rows.Add(dr);
            }
            return dt;
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值