AD PropertiesToLoad

以下方式若想改寫成抓取全部 , 想請教一些疑問

撈出ActiveDirectory聯絡人

按下button1 撈出單個使用者:

 private void button1_Click(object sender, EventArgs e)

        {

            string uid = "GGYY"//Domain帳號

            string pwd = "12345";  //密碼

            string domain = GetDomainName(domain_txt.Text);  //取得Domain

            string QueryString = "LDAP://" + domain;

            DirectoryEntry ldapConnection = new DirectoryEntry(QueryString, uid, pwd);   //使用DirectoryEntry  連入ActiveDirectory

            DirectorySearcher Searcher = new DirectorySearcher(ldapConnection);

            string value = string.Empty;

            string target = target_txt.Text;       

          try

            {

                 Searcher.Filter = "(SAMAccountName=" + target + ")";    //過濾條件  *有點搞不懂過濾的條件寫法該如何解釋,不知哪位大大能夠幫忙解釋

                 Searcher.PropertiesToLoad.Add("SAMAccountName");   //帳號

                 Searcher.PropertiesToLoad.Add("Name");   // 全名

                 Searcher.PropertiesToLoad.Add("displayName");   //ActiveDirectory的顯示名稱

                 Searcher.PropertiesToLoad.Add("mail");           //ActiveDirectory的信箱

                 Searcher.PropertiesToLoad.Add("description");

                 Searcher.PropertiesToLoad.Add("department");    //ActiveDirectory的信箱

                 Searcher.PropertiesToLoad.Add("company");

                 Searcher.PropertiesToLoad.Add("phsicalDeliveryOfficeName");

                 Searcher.PropertiesToLoad.Add("userPrincipalName");  //使用者帳號+Domain

                 Searcher.PropertiesToLoad.Add("telephoneNumber");       

                 Searcher.PropertiesToLoad.Add("givenName");  //first name

                 Searcher.PropertiesToLoad.Add("sn");

                SearchResult result = Searcher.FindOne();       //若抓出全部使用者,應該是寫成這個方式 SearchResultCollection result = Searcher.FindAll( );

                if (result != null)

                {

                    foreach (string key in result.Properties.PropertyNames)

                    {

                        foreach (Object propValue in result.Properties[key])

                        {

                            value += key + " = " + propValue + "\r\n";

                            textBox1.Text += key + " = " + propValue + "\r\n";

                        }

                    }

                }

                else

                {

                    MessageBox.Show("使用者不存在");

                }

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.Message);

            }

            finally

            {

                Searcher.Dispose();

                ldapConnection.Dispose();

            }   

        }
posted @ 2012-07-27 15:46  hishanghai  阅读(401)  评论(0编辑  收藏  举报