08 2005 档案
摘要:了解了客户程序的编程方法以及ADSI提供者的基本内容之后,现在我们来看看从客户程序到ADSI提供者组件的交互过程(如图4所示),以便加深读者对ADSI的理解。 图4 客户程序与ADSI提供者的交互过程 客户程序首先向ADSI发一个对象绑定请求(图中步骤1),ADSI组件根据客户给出的ADSI对象路径,提取出标识提供者ProgID的字符串,比如“WinNT”、“LDAP”或者自定义的提供者Pr...
阅读全文
摘要:客户程序也可以利用IADsClass、IADsProperty和IADsSyntax接口在运行时刻确定目录对象的详细属性信息。操作步骤如下: a. 先绑定到目录对象的表结构对象,可以直接访问目录对象的“schema”属性。 b. 用枚举的办法从表结构对象中找到强制属性或者可选属性,如果客户知道要访问的属性名则可以跳过这一步。 c. 绑定到表结构对象的包容器对象。 d. ...
阅读全文
摘要:由于目录对象的标识名可能在某些操作的影响下被改变,但目录对象的objectGUID属性永远不会改变,所以我们可以直接在LDAP路径中指定此GUID,客户程序直接绑定到此对象,下面的代码显示了这种用法: IADs *pADs; LPWSTR pszFilter = L"LDAP://MyServer/"; hr = ADsGetObject( pszFilter, IID_IADs, (v...
阅读全文
摘要:从类别到对象,它可以指定属性,那么目录对象的属性如何被指定呢?ADSI通过接口IADsProperty进行描述,IADsProperty接口的属性和方法如表6所示。 表6 IADsProperty接口的属性 属性名类型说明 OIDBSTR唯一的对象标识符 SyntaxBSTR语法路径 MaxRangelong对于多值属性,最大属性数 MinRangeLong对于多值属性,最小属性数 Multi...
阅读全文
摘要:表1 IADs接口的属性 属性名类型说明 NameBSTR对象名字 AdsPathBSTR对象的全路径 ClassBSTR对象的类别(表结构对象的路径) GUIDBSTR对象的全局唯一标识(GUID) ParentBSTR父包容器的路径 SchemaBSTR表结构对象的路径 表2 IADs接口的方法 方法名参数说明 GetInfo 用属性值重新装入对象 SetInfo 提交属性值的变化 Ge...
阅读全文
摘要:下面列出目前已经实现的ADSI目录服务: (1) Windows NT域用户管理。 (2) LDAP (Exchange Server)目录服务。 (3) Internet Information Server (4) NDS(Novell NetWare Directory Services) 目前,在一个企业内部存在多个目录服务也会带来一些问题。对于管理员来说,它必须管理多个目录服...
阅读全文
摘要:目录服务技术介绍——ADSI潘爱民 北京大学计算机科学技术研究所 (100871) 【摘要】本文介绍了Microsoft提出的活动目录服务接口(ADSI)技术。文章首先讲述了ADSI的结构,然后介绍了ADSI的程序设计方法,最后通过例子简单说明了ADSI的用法。 一、ADSI简介 ADSI (Active Directory Services Interface)是Microsoft新推出的一...
阅读全文
摘要:综合运用上面的知识,下面的实例实现了简单的网络通讯-双机互连,针对客户端和服务端分别编制了应用程序。客户端创建到服务端的连接,向远程主机发送连接请求连接信号,并发送交谈内容;远程主机端接收来自客户的连接,向客户端发回确认连接的信号,同时接收并显示客户端的交谈内容。在这个基础上,发挥你的创造力,你完全可以开发出一个基于程序语言(C#)级的聊天室! 客户端主要源代码: public ...
阅读全文
摘要:前面我们说,TcpClient类创建在Socket之上,在Tcp服务方面提供了更高层次的抽象,体现在网络数据的发送和接受方面,是TcpClient使用标准的Stream流处理技术,使得它读写数据更加方便直观,同时,.Net框架负责提供更丰富的结构来处理流,贯穿于整个.Net框架中的流具有更广泛的兼容性,构建在更一般化的流操作上的通用方法使我们不再需要困惑于文件的实际内容(HTML、XML 或其他任...
阅读全文
摘要:前一篇《Visual C#.Net网络程序开发-Socket篇》中说到:支持Http、Tcp和Udp的类组成了TCP/IP三层模型(请求响应层、应用协议层、传输层)的中间层-应用协议层,该层的类比位于最底层的Socket类提供了更高层次的抽象,它们封装 TCP 和 UDP 套接字的创建,不需要处理连接的细节,这使得我们在编写套接字级别的协议时,可以更多地尝试使用 TCPClient 、 UDPCl...
阅读全文
摘要:Net中实际上已经为我们在这方面做得很好了。FCL中提供了不少的类来帮助我们完成这项工作,让我们的开发工作变非常简单和快乐。编程控制IIS实际上很简单,和ASP一样,.Net中需要使用ADSI来操作IIS,但是此时我们不再需要GetObject这个东东了,因为.Net为我们提供了更加强大功能的新东东。 System.DirectoryServices命名空间中包括了些强大的东东--Director...
阅读全文