程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#2.0 對AD的簡單操作

C#2.0 對AD的簡單操作

編輯:C#入門知識

        System.DirectoryServices.Protocols.dll是.NET2.0新增加的一個針對目錄服務訪問協議處理的組件,其下只有一個System.DirectoryServices.Protocols命名空間。在該命名空間下,主要有LDAP、DSML兩種國際標准協議的一系列實現類。通過這些類,完全可以很方便地實現對目錄的操作管理,這個實現步驟就有點類似你利用ADO.NET操作數據庫一樣方便。

       在System.DirectoryServices.Protocols命名空間裡,主要有這樣幾個類:LdapConnection(LDAP協議方式的目錄連接類,負責創建LDAP連接並綁定LDAP服務器)、DsmlSoapHttpConnection(DSML協議方式的目錄連接類、負責創建DSML連接並綁定DSML服務器)、AddRequest/AddResponse、ModifyRequest/ModifyResponse、ModifyDNRequest/ModifyDNResponse、CompareRequest/CompareResponse、SearchRequest/SearchResponse、DeleteRequest/DeleteResponse、DsmlRequestDocument/DsmlResponseDocument。這些類在實際編程應用中的關系如下圖:


        用戶利用LdapConnection/DsmlSoapHttpConnection跟LDAP服務器/DSML服務器建立連接並綁定後,即可創建一系列相應的操作請求(如增加一新對象請求AddRequest),然後通過連接對象的SendRequest方法把請求命令發送到服務器,服務器根據請求進行相應處理後,把應答信息傳回給客戶端。需要指出的是,對於DSML方式的請求,還可以利用DsmlRequestDocument將AddRequest、ModifyRequest、ModifyDNRequest、CompareRequet、SearchRequest和DeleteRequest的任意幾個請求組合組裝起來,一並發送到DSML服務器進行處理。

        LdapConnection的使用

  1. 創建LDAP連接並進行綁定:

    NetworkCredential credential = new NetworkCredential("Administrator", "password");

     

    LdapConnection ldapConnection = new LdapConnection("192.168.0.6");

    ldapConnection.Credential = credential;

    ldapConnection.Bind();

  2. 創建一個請求,使其達到增加一個OU,其名稱為MyOU的目的。創建後的MyOU其DN為OU=MyOU,DC=mydomain,DC=local:

    string targetDN = "DC=mydomain,DC=local";

     

    // 增加一個名為MyOU的組織單元

    string ou = "OU=MyOU," + targetDN;

    string objectClass = "organizationalUnit";

     

    AddRequest addRequest = new AddRequest(ou, objectClass);

  3. 把請求發送到服務器進行處理:

    ldapConnection.SendRequest(addRequest);
    執行完SendRequest()後,如果沒有出現異常,那麼MyOU已經成功增加了。當然,如果你還需要進一步對SendRequest()操作後的應答信息進行處理的話,也可以類似下面這樣寫,其中將在屏幕上輸出“Success“的結果碼:

    AddResponse addResponse = (AddResponse)ldapConnection.SendRequest(addRequest);

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved