1. 程式人生 > >.NET獲取windows域中使用者所有屬性

.NET獲取windows域中使用者所有屬性

        DirectoryEntry de = new DirectoryEntry("LDAP://" + DomainName);
        de.Username = "liuyan";
        de.Password = "Abcd1234!"; 
        DirectorySearcher ds = new DirectorySearcher(de);
        ds.Filter = ("(SAMAccountName=liuyan)");   //篩選條件  (登入名為blogtest,不要用CN=,因為CN值有時和登入名不一樣,所以有的不能登入)

        #region 獲取根據篩選條件獲取所有屬性和屬性值
        StringBuilder sb = new StringBuilder();
        //獲取根據篩選條件獲取所有屬性和屬性值
        foreach (SearchResult sr in ds.FindAll())   //使用者名稱=blogtest只有一個,所以FindAll和FindOne就一樣了
        {
            foreach (string myKey in sr.Properties.PropertyNames)   //根據迴圈查詢sr的所有屬性
            {
                sb.AppendLine(myKey + "=");
                foreach (Object myCollection in sr.Properties[myKey])   //獲取sr屬性的值
                {
                    sb.Append(myCollection + "<br />");
                }
            }

            //sr.GetDirectoryEntry().Parent.Name;  //是找指定值的樹結構父級名稱   樹結構根據CSDN下載的C/S結構對照 
        }
        return sb.ToString();
        #endregion