e股脑电脑教程网
  • 首 页
  • 操作系统
  • 应用软件
  • 下载工具
  • 影音视频
  • 办公软件
  • 媒体制作
  • 网站建设
  • 平面设计
  • 数据库
  • 程序开发
  • 视频教程
编辑推荐: | 文章搜索:
您现在的位置: e股脑 >> 程序开发 >> C教程 >> C#2.0 对AD的简单操作 >> 教程正文
 
教程搜索
 
 
相关教程
  • 深入剖析C#继承机制
  • C#如何获得 WINDOWS 版本
  • C# 编码规范和编程好习惯
  • 获得汉字字符串拼音首字母 C#版
  • 利用C#实现标准的 Dispose模式
  • 在C#中应用哈希表(Hashtable)
  • 利用Delphi 2005 编写C#应用程序
  • 对C#泛型中的new()约束的一点思考
  • 身份证15To18 的算法(C#)
  • .Net下WebMethod属性
  • C#实现的18位身份证格式验证算法
  • C#中用API实现MP3等音频文件的播放类
  • 用C#把文件转换为XML
  • 如何得到硬盘序列号
  • Raw Socket编程实现网络封包监视
  • C#2.0 对AD的简单操作
 
 

图文教程


  • 将其他Email邮件转移到Gmail邮箱中

  • Vista破解TCP/IP后进不了系统咋办

  • Vista下用DriveSpacio查看磁盘空间

  • Windows抢了谁的饭碗 非主流操作系统To

  • 地球还是火星 平常心看“非主流”
 
 
赞 助 商
 
 
C#2.0 对AD的简单操作
  • 来源:e股脑
  • 点击次数:
  • 更新时间:2007-8-9

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);

    Console.WriteLine(addResponse.ResultCode.ToString());

至此,一个LDAP请求已经处理完毕。上面的完整代码可以点这里进行查看。

using System;

using System.Net;

using System.DirectoryServices;

using System.DirectoryServices.Protocols;

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

LdapConnection ldapConnection = new LdapConnection("192.168.0.6");

ldapConnection.Credential = credential;

ldapConnection.Bind();

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

//增加一个名为MyOU的OU

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

string objectClass = "organizationalUnit";

AddRequest addRequest = new AddRequest(ou, objectClass);


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

Console.WriteLine(addResponse.ResultCode.ToString());

类似上面增加操作,还可以利用DeleteRequest进行删除操作、ModifyDNRequest进行重命名或移动操作、ModifyRequest进行修改对象属性操作、SearchRequest进行查询操作、CompareRequest进行验证比较操作。

DsmlSoapHttpConnection的使用 :

  1. 关于DSML for Windows,可以通过http://www.microsoft.com/windows2000/server/evaluation/news/bulletins/dsml.asp进行下载。简单理解DSML,就是利用标准的HTTP/SOAP/XML对活动目录进行读写等一系列操作的技术。安装完DSML for Windows后,还需要执行“Microsoft DSML“程序组里的“Configuring DSML Services“。该程序里有三个步骤,很好理解和操作,这里省略。但需要指出,如果你不需要进行SSL连接服务器的话,需要在Step 1中把“Require SSL to connect to DSML server“取消。另外,如果你还需要执行除读取以外的权限,如写操作权限,还需要在Step 2中把“Make DSML Server readonly“取消。
  2. 建立DsmlSoapHttpConnection连接:

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

    Uri dsmlServerUri = new Uri("http://192.168.0.6/dsml/adssoap.dsmlx");

    DsmlSoapHttpConnection dsmlSoapHttpConnection = new DsmlSoapHttpConnection(dsmlServerUri);

    dsmlSoapHttpConnection.Credential = credential;

  3. 创建一个请求,使其达到增加一个OU,其名称为MyOU的目的。创建后的MyOU其DN为OU=MyOU,DC=mydomain,DC=local。可以看到,这部分跟LDAP操作时一致的!

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

    //增加一个名为MyOU的OU

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


    string objec

    1 2 下一页
  • 上一篇教程: 活动目录.NET编程Tips
  • 下一篇教程: Raw Socket编程实现网络封包监视
  •  

    关于本站 | 广告联系 | 版权声明 | 使用帮助

    Copyright © 2004-2008 www.egunao.com All rights reserved.