活動目錄在.Net環(huán)境下如何用C#操縱?
活動目錄在.Net環(huán)境下如何用C#操縱?下文就給出了詳細的描述。
Windows 2000 Server在Windows NT Server 4.0的基礎(chǔ)上,進一步發(fā)展了"活動目錄(Active Directory)".活動目錄是從一個數(shù)據(jù)存儲開始的。它采用了類似Exchange Server的數(shù)據(jù)存儲,稱為:Extensible Storage Service (ESS)。其特點是不需要事先定義數(shù)據(jù)庫的參數(shù),可以做到動態(tài)地增長,性能非常優(yōu)良。這個數(shù)據(jù)存儲之上已建立索引的,可以方便快速地搜索和定位。
活動目錄的分區(qū)是"域(Domain)",一個域可以存儲上百萬的對象。域之間還有層次關(guān)系,可以建立域樹和域森林,無限地擴展。
活動目錄充分體現(xiàn)了微軟產(chǎn)品的"ICE",即集成性(Integration),深入性(Comprehensive),和易用性(Ease of Use)等優(yōu)點。活動目錄是一個完全可擴展,可伸縮的目錄服務(wù),既能滿足商業(yè)ISP的需要,又能滿足企業(yè)內(nèi)部網(wǎng)和外聯(lián)網(wǎng)的需要。
在.Net環(huán)境下操縱活動目錄非常容易,其中提供了很多封裝好的類用來操縱活動目錄,這些類都存放在System.DirectoryServicess名稱空間里。本文見簡要介紹一下如何使用這些類來讀取活動目錄中的信息。
注:我們假設(shè)您已經(jīng)對活動目錄的概念有了基本的了解。
我的網(wǎng)絡(luò)環(huán)境由兩個域控制器,和數(shù)臺win2000工作站組成,安裝了活動目錄用來保存域里的一切信息,域名是szcs。
下面我們開始建立一個簡單的控制臺應(yīng)用程序,來讀取活動目錄的信息。
***步:建立項目
(這就不多說了)
第二步:添加引用
由于操縱活動目錄的類都存放在System.DirectoryServices.dll文件里。所以,我們必須在項目中添加對它的引用。
方法:在菜單中,選擇 項目-引用,選擇System.DirectoryServices.dll,確定。
第三步:引用名稱空間
方法:在程序的開頭出添加下面程序
using System.DirectoryServices;
第四步:編寫程序
下面是一個范例程序
- namespace ADsample
- {
- ///
- /// Summary description for Class1.
- ///
- class Class1
- {
- static void Main(string[] args)
- {
- //
- // TODO: Add code to start application here
- //
- GetAllOU();
- Console.ReadLine();
- }
- //獲取目錄中需要的組織單元(OU)
- public static void GetAllOU()
- {
- DirectoryEntry entry = new DirectoryEntry("LDAP://szcs");
- DirectorySearcher mySearcher = new DirectorySearcher(entry);
- mySearcher.Filter = ("(objectClass=organizationalUnit)");
- foreach(SearchResult resEnt in mySearcher.FindAll())
- {
- Console.Write(resEnt.GetDirectoryEntry().Name.ToString());
- Console.WriteLine("\t"resEnt.GetDirectoryEntry().Name.ToString());
- }//end foreach
- }//end GetAllOU
- }//end class
- }//end namespace
程序注解:
程序開始,實例化了一個DirectoryEntry類,其構(gòu)造函數(shù)的參數(shù)是"LDAP://szcs",這里szcs是域名。
然后又實例化了一個DirectorySearcher類,用來查詢szcs域中活動目錄中的信息,其構(gòu)造函數(shù)的參數(shù)是一個DirectoryEntry類的實例對象。
DirectorySearcher類的Filter屬性用來設(shè)置查詢的過濾條件,一般有以下三種:
1. objectClass=organizationalUnit 查詢條件是所有的組織單元(OU)
2. objectClass=group 查詢條件是所有的組(GROUP)
3. objectClass=user 查詢條件是所有的用戶(USER)
當然還可以設(shè)置其他的過濾條件,而且可以使用邏輯運算符,詳情請參加MSDN
DirectorySearcher類的Findall方法用來遞歸的查找所有符合條件的對象。其返回結(jié)果
是一個SearchResult類型的對象,這是一個集合類型。
用Foreach語句訪問集合中的所有對象,獲得對象的信息。
在.Net環(huán)境下用C#操縱活動目錄想必通過這篇文章讀者也掌握了,希望本文能夠?qū)ψx者有所幫助。
【編輯推薦】
- 活動目錄用戶如何管理?
- 活動目錄中的對象如何操作?
- 活動目錄災(zāi)難管理員應(yīng)該如何應(yīng)對
- Windows 2000之活動目錄使用技巧
- 如何轉(zhuǎn)移活動目錄到Windows Server 2008 R2?