小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

活動(dòng)目錄.NET編程Tips

 kittywei 2012-02-21
  • 為什么要有活動(dòng)目錄,什么是活動(dòng)目錄,它有什么用:活動(dòng)目錄主要用在分布式的環(huán)境中。在分布式環(huán)境中,要求有各種信息可以被各種應(yīng)用很方便地訪問(wèn)讀取?;顒?dòng)目錄正式為分布式環(huán)境中的信息提供一種訪問(wèn)途徑。它提供了一個(gè)公共的區(qū)域來(lái)保存分布式環(huán)境中的各種信息,并且對(duì)這些信息進(jìn)行定位。從開發(fā)人員角度看活動(dòng)目錄,可以理解活動(dòng)目錄是一種存放了應(yīng)用程序所需要的特定資源信息的“數(shù)據(jù)庫(kù)”?;顒?dòng)目錄還對(duì)這些資源信息的讀取和查詢進(jìn)行了優(yōu)化。
  • 容器和非容器:活動(dòng)目錄中的資源信息被組織成一個(gè)層次結(jié)構(gòu)。這個(gè)層次結(jié)構(gòu)中的每一個(gè)實(shí)體都被簡(jiǎn)稱為對(duì)象。換句話說(shuō),活動(dòng)目錄中創(chuàng)建對(duì)象時(shí),是把它們創(chuàng)建在一個(gè)層次結(jié)構(gòu)中的。該結(jié)構(gòu)由兩種類型的對(duì)象組成:Container(容器)和非Container(非容器)。容器可容納非容器或下一級(jí)的容器。而非容器則不再包含其他對(duì)象,因此也常被成為葉子對(duì)象。在安裝完活動(dòng)目錄后,操作系統(tǒng)已經(jīng)默認(rèn)自動(dòng)創(chuàng)建了很多的Container,如Users, Builtin等。
  • ADsPath、DN、RDN:在活動(dòng)目錄中層次結(jié)構(gòu)的路徑被稱為ADsPath,可用來(lái)唯一標(biāo)志一個(gè)對(duì)象(另外唯一標(biāo)志對(duì)象的方法是使用GUID)。ADsPath常用的表示為:DC=microsoft,DC=com/">LDAP://DC=microsoft,DC=com。例如,有域被命名為mydomain.local,則它的ADsPath表示為:http://www.ahfyzs.com/ldap://DC=mydomain,DC=local/。其中DC是Domain Component(域組件)的縮寫,它只用于表示域的根。DN是Distinguished Name(唯一標(biāo)識(shí))的縮寫,RDN是Relative Distinguished Name(相對(duì)唯一標(biāo)識(shí))的縮寫。DN用來(lái)在一個(gè)完整的目錄信息樹中唯一表示一個(gè)對(duì)象的名稱,而RDN是指在該對(duì)象的父容器中唯一表示它的名稱。下面看個(gè)示例:在mydomain.local域中用戶容器中超級(jí)管理員賬號(hào)的ADsPath為:http://www.ahfyzs.com/ldap://CN=Administrator,CN=Users,DC=mydomain,DC=local/,其DN為(注意沒(méi)有了LDAP:// 這個(gè)前綴):CN=Administrator,CN=Users,DC=mydomain,DC=local,其RDN為(即在Users容器中的名稱):CN=Administrator。其中CN是Common Name(公用名稱)的縮寫。
  • OU:OU是Organizational Unit(組織單元)的縮寫。OU是容器對(duì)象,它主要從邏輯的角度來(lái)管理和組織活動(dòng)目錄域。例如,當(dāng)你公司內(nèi)部打算讓銷售部經(jīng)理有權(quán)限管理自己整個(gè)銷售部門資源信息時(shí),一種方法就是為銷售部門單獨(dú)創(chuàng)建一個(gè)名為Sales的OU,然后讓銷售部經(jīng)理在受限條件下實(shí)現(xiàn)其部門資源信息的“自治”。
  • 更多基礎(chǔ)概念,可以參考這里?。
  • 關(guān)于LDAP及其語(yǔ)法,可以參考《理解LDAP》(,)。
  • Naming Context:活動(dòng)目錄被分成許多部分,稱之為分區(qū)或者Naming Context,簡(jiǎn)稱NC。其中主要有三個(gè)部分:Domain NC,Configuration NC,Schema NC。這也就是你打開ADSIEDIT.msc時(shí)首先看到的已經(jīng)加載的三個(gè)活動(dòng)目錄分區(qū)。Domain NC用于保存用戶、組和組織單元的相關(guān)信息。Configuration NC用于保存整個(gè)域森林中的配置數(shù)據(jù)信息。而Schema NC負(fù)責(zé)保存與在活動(dòng)目錄中能夠創(chuàng)建的所有的對(duì)象和屬性集相關(guān)的數(shù)據(jù)。例如,在mydomain.local域中,Domain NC的ADsPath為:http://www.ahfyzs.com/ldap://DC=mydomain,DC=local/。Configuration NC的ADsPath為:http://www.ahfyzs.com/ldap://CN=Configuration,DC=mydomain,DC=local/。Schema NC的ADsPath為:http://www.ahfyzs.com/ldap://CN=Schema,CN=Configuration,DC=mydomain,DC=local/。
  • AD/ADAM程序訪問(wèn)接口示意圖:

  • System.DirectoryServices:System.DirecotryServices命名空間下有兩個(gè)主要的類:DirectoryEntry和DirectorySearcher。其中DirectoryEntry類用于表示活動(dòng)目錄中任何一個(gè)對(duì)象。你可以通過(guò)DirectoryEntry對(duì)活動(dòng)目錄里的對(duì)象進(jìn)行修改其屬性、移動(dòng)、重命名、列舉其內(nèi)部子對(duì)象、創(chuàng)建子對(duì)象、刪除子對(duì)象、獲取起父對(duì)象等等操作。例如:
    using System.DirectoryServices;

    DirectoryEntry entry = new DirectoryEntry(ADsPath);
    Console.WriteLine(entry.Path);
    Console.WriteLine(entry.Name);
    Console.WriteLine(entry.GUID);
    對(duì)于活動(dòng)目錄對(duì)象的綁定路徑ADsPath,你可以用 http://www.ahfyzs.com/ldap://ServerName/DN 來(lái)綁定指定服務(wù)器和DN的活動(dòng)目錄對(duì)象。另外,DirectoryEntry還可以進(jìn)一步指定用戶名和密碼,或者用戶名和密碼外加安全驗(yàn)證方式進(jìn)行對(duì)象綁定。
  • DirectoryEntry的屬性示意圖


    活動(dòng)目錄對(duì)象的屬性分為單值屬性多值屬性兩類。例如上圖中,CN就是單值屬性,而memberOf則為多值屬性。對(duì)于多值屬性,可以用循環(huán)語(yǔ)句for或foreach進(jìn)行列舉。
  • DirectorySearcher目錄查詢:DirectorySearcher實(shí)例有兩個(gè)主要方法:FindAll()和FindOne()。FindAll()是獲取該對(duì)象的所有子對(duì)象集合;而FindOne()則獲取查詢到的第一個(gè)子對(duì)象。對(duì)于DirectorySearcher實(shí)例,其也有SearchRoot、SearchScope、Filter三個(gè)主要屬性。其中,SearchRoot表示在AD層次結(jié)構(gòu)中要開始搜索的節(jié)點(diǎn);SearchScope表示搜索范圍;而Filter則表示LDAP查詢語(yǔ)句的過(guò)濾命令字符串,例如 (&(objectCategory=person)(objectClass=user)) 表示列舉所有用戶對(duì)象中的人員對(duì)象。而對(duì)于搜索范圍SearchScope,則又分為 Base、OneLevel、Subtree三種。其中,Base表示要那個(gè)搜索的根節(jié)點(diǎn);OneLevel表示在同一個(gè)層次中搜索;Subtree則表示在包括根節(jié)點(diǎn)的所有節(jié)點(diǎn)的搜索。其示意圖如下:

  • 使用SQLServer查詢分析器查詢活動(dòng)目錄數(shù)據(jù)的實(shí)現(xiàn)方法:為AD創(chuàng)建一個(gè)鏈接服務(wù)器(你可以在企業(yè)管理器的具體SQLServer服務(wù)器里的“安全性”里看到該項(xiàng))。在查詢分析器中執(zhí)行下面命令即可:
    sp_addlinkedserver 'ADSI', 'Active Directory Service Interfaces', 'ADSDSOObject', 'adsdatasource'
    現(xiàn)在你就可以在查詢分析器中查詢AD數(shù)據(jù)了。例如下面查詢語(yǔ)句:
    SELECT * FROM OpenQuery(ADSI, 'SELECT title, displayName, sAMAccountName, givenName, telephoneNumber, facsimileTelephoneNumber, sn FROM ''LDAP://DC=mydomain,DC=local'' where objectClass = ''User''')
  • ADAM--活動(dòng)目錄應(yīng)用程序模式:ADAM,全稱為Active Directory Application Mode,它是一個(gè)可運(yùn)行在WinXP Professional和Win2k3上的目錄服務(wù),可簡(jiǎn)單的看作是AD的一個(gè)簡(jiǎn)化版本。但是,ADAM和AD是無(wú)法比較的,因?yàn)樗鼈兊膫?cè)重點(diǎn)和應(yīng)用領(lǐng)域是不同的:AD是主要側(cè)重網(wǎng)絡(luò)基礎(chǔ)構(gòu)造,它是以系統(tǒng)服務(wù)運(yùn)行,并需要配以DNS。而ADAM則主要是為應(yīng)用程序服務(wù)的,它是以用戶服務(wù)運(yùn)行,且不需要DNS。同一臺(tái)計(jì)算機(jī)上可以運(yùn)行多個(gè)ADAM實(shí)例,例如可以為每個(gè)應(yīng)用程序配置一個(gè)ADAM實(shí)例。你可以在 這里 下載到ADAM。
    • 本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
      轉(zhuǎn)藏 分享 獻(xiàn)花(0

      0條評(píng)論

      發(fā)表

      請(qǐng)遵守用戶 評(píng)論公約

      類似文章 更多