Visual C#构建网络计算机树形图

2016-02-19 15:21 77 1 收藏

有一种朋友不在生活里,却在生命力;有一种陪伴不在身边,却在心间。图老师即在大家的生活中又在身边。这么贴心的服务你感受到了吗?话不多说下面就和大家分享Visual C#构建网络计算机树形图吧。

【 tulaoshi.com - 编程语言 】

  Visual C#编写网络应用程序一般会使用到.Net FrameWork SDK中提供的二个重要的网络命名空间"System.Net"和"System.Net.Sockets"。其实Visual C#还是可以通过调用其他命名空间中的类库来实现很多有用的网络功能,最常见的命名空间就是"System.DirectoryServices","System.DirectoryServices"命名空间定义了"DirectoryEntry"和"DirectorySearcher"类,通过它们能够访问 Active Directory服务接口(简称ADSI)。Active Directory服务接口提供一种构造复杂计算机网络的简单方法。Active Directory服务接口系统以分层树状结构排列。每个节点表示网络上的一个资源或服务(对应网络中的域或工作组),并且这个节点包含一组可检索和操作的属性(对应网络中的主机)。本文就是通过它们来实现一个比较有用的网络功能--构建一个网络组成的计算机树形结构图。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  一.Active Directory服务接口和DirectoryEntry类

  Active Directory服务接口是Microsoft Windows Active Directory的编程接口。它允许应用程序使用单个接口与网络上的不同目录进行交互。Visual C#是通过创建DirectoryEntry和 DirectorySearcher能够轻松访问这个接口。而这种操作对其他编程语言而言,却意味着要调用需要WinAPI函数。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  Active Directory服务接口可以实现很多操作,本文所实现的访问Active Directory树,以构建网络配置的计算机分层树形结构图,只是其中的一个很小的部分。若要使用Active Directory服务接口,必须在客户端计算机上安装 ADSI 2.5或更高版本。Windows 2000自动安装了ADSI 2.5,而对Win 98及以下的系统,则没有安装ADSI 2.5,这也就是下面介绍的这个网络功能无法获得系统是Win 98及以下操作系统在网络树形图对应的位置。所以下面介绍的网络功能成功构建网络的计算机树形图前提之一就是网络上的计算机的操作系统在Windows 2000及以上。

  由于本文只使用了DirectoryEntry类,故只介绍DirectoryEntry的结构和使用方法,表01和表02是DirectoryEntry类常用属性、常用方法及其说明:

  属性说明AuthenticationType获取或设置要使用的身份验证的类型。Children获取DirectoryEntries实例,它包含ActiveName获取用基础目录服务命名的对象的名称。NativeObject获取本机Active Directory服务接口(ADSI)对象。Parent获取Active Directory层次结构中的此项的父级。Password获取或设置在对客户端进行身份验证时使用的密码。Path获取或设置此DirectoryEntry的路径。Properties获取在此对象上设置的属性的PropertyCollection。SchemaClassName获取用于此DirectoryEntry的架构的名称。SchemaEntry获取DirectoryEntry,它保存此项的架构信息。项的架构确定其强制属性和可选属性的名称的列表。UsePropertyCache获取或设置一个值,该值指示在每次运算之后是否应提交缓存。Username获取或设置在对客户端进行身份验证时使用的用户名。          表01:DirectoryEntry类的常用属性及其说明

  方法说明Close关闭DirectoryEntry并释放与此组件关联的任何系统资源。CommitChanges保存对ActiveCopyTo创建此项的副本,并将其作为指定父级的子项。DeleteTree从Active Directory层次结构中删除此项及其整个子树。Exists搜索指定路径处的目录存储区,以查看是否存在项。Invoke在本机Active Directory上调用方法。MoveTo将此项移至指定父级。RefreshCache将此目录项的属性值加载到属性缓存中。Rename更改此项的名称。        表02:DirectoryEntry类的常用方法及其说明

  二.Visual C#使用ADSI构建网络计算机树形图

  创建DirectoryEntry类实例后,并为该实例指定一个路径,指示所访问的系统上使用的提供程序的类型以及要绑定到的对象。表03为DirectoryEntry类可以访问的服务提供程序以及每种服务提供程序的标识符。

  服务提供程序路径标识符Windows 2000或Windows XPWinNT://path轻量目录访问协议(LDAP)LDAP://pathNovell NetWare目录服务NDS://pathNovell Netware 3.xNWCOMPAT://path      表03:DirectoryEntry类访问的服务提供程序以及每种服务提供程序的标识符

  当创建DirectoryEntry类实例,并把此实例绑定到指定路径的Active Directory中的节点。如果是此节点对应的是Windows NT服务提供程序,那就可以访问此节点下域、计算机、打印队列和会话。本文就是通过DirectoryEntry此种功能访问网络中计算机,从而构建网络计算机树形图的。下面就来介绍具体的实现方法。

  三.本文中介绍的程序设计及运行环境

  (1).微软视窗2000 服务器版。

  (2).Visual Studio .Net 2003企业结构版,.Net Framework SDK 4322。

  四.Visual C#构建网络计算机树形图的实现步骤

  Visual C#构建网络计算机树形图的具体步骤如下:

  1. 启动Visual Studio .Net。

  2. 选择菜单||后,弹出对话框。

  3. 将设置为。

  4. 将设置为。

  5. 在文本框中输入。

  6. 在的文本框中输入,然后单击按钮,这样在"E:VS.NET项目"目录中就产生了名称为"Visual C#构建网络计算机树形图"的文件夹,并在里面创建了名称为"Visual C#构建网络计算机树形图"的项目文件。

  7. 把Visual Studio .Net的当前窗口切换到窗口,并从中的选项卡中往Form1窗体中拖入下列组件,并执行相应的操作:

  一个TreeView组件,名称为treeView1,使用此组件来显示网络计算机的树形图。

  一个Button组件,通过此组件的Click事件来读取网络中域和工作组,并在此Button组件拖入Form1的设计窗体后,双击它,则系统会在Form1.cs文件分别产生此组件的Click事件对应的处理代码。

  8. 在窗口中,双击Form1.cs文件,进入Form1.cs文件的编辑界面。并在Form1.cs文件的开头,用下列导入命名空间代码替代系统缺省的导入命名空间代码。

  

using System.Drawing ;using System.Collections ;using System.ComponentModel ;using System.Windows.Forms ;using System.Data ;using System.Threading ;

  9. 在Form1.cs的class代码区中添加下列代码,下列代码是创建DirectoryEntry类实例,并把此实例绑定到Windows NT服务提供程序:

  

private DirectoryEntry entryPC = new DirectoryEntry ( "WinNT:" ) ;

  10. 以下面代码替代系统产生的InitializeComponent过程,下列代码的作用是初始化程序中的组件,并定义treeView1组件的DoubleClick事件:

  

private void InitializeComponent ( ){ this.treeView1 = new System.Windows.Forms.TreeView ( ) ; this.button1 = new System.Windows.Forms.Button ( ) ; this.SuspendLayout ( ) ; this.treeView1.ImageIndex = -1; this.treeView1.Location = new System.Drawing.Point ( 16 , 8 ) ; this.treeView1.Name = "treeView1" ; this.treeView1.SelectedImageIndex = -1 ; this.treeView1.Size = new System.Drawing.Size ( 316 , 302 ) ; this.treeView1.TabIndex = 0 ; this.treeView1.DoubleClick += new System.EventHandler ( this.treeView1_DoubleClick ) ; this.button1.Location = new System.Drawing.Point ( 118 , 324 ) ; this.button1.Name = "button1" ; this.button1.Size = new System.Drawing.Size ( 82 , 34 ) ; this.button1.TabIndex = 1 ; this.button1.Text = "获取" ; this.button1.Click += new System.EventHandler ( this.button1_Click ) ; this.AutoScaleBaseSize = new System.Drawing.Size ( 6 , 14 ) ; this.ClientSize = new System.Drawing.Size ( 350 , 369 ) ; this.Controls.Add ( this.button1 ) ; this.Controls.Add ( this.treeView1 ) ; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle ; this.MaximizeBox = false ; this.Name = "Form1" ; this.Text = "Visual C#构建网络计算机树形图" ; this.ResumeLayout ( false ) ;}

来源:https://www.tulaoshi.com/n/20160219/1609478.html

延伸阅读
本文向大家介绍Windows Sockets的一些关于用C#实现的原始套接字(Raw Socket)的编程,以及在此基础上实现的网络封包监视技术。同Winsock1相比,Winsock2最明显的就是支持了Raw Socket套接字类型,使用Raw Socket,可把网卡设置成混杂模式,在这种模式下,我们可以收到网络上的IP包,当然包括目的不是本机的IP包,通过原始套接字,我们也可以...
WMI是Windows Management Instrumentation的简称,即:视窗管理规范。在Windows 2000或以后的版本中均安装得有,NT4.0则需要安装WMI的核心组件。通过WMI可以获取远程计算机的各种数据信息,控制远程计算机的各种行为,而这就像操作本地机一样方便、简单。 一.WMI简介 WMI从根本上说应该为一种服务,并且对于本地不同的用户,WMI...
ICMP就是所谓的Internet控制报文协议(Internet Control Message Protocol),在网络中,一般用它来传递差错报文以及其他应注意的信息。ICMP一般被认为是和IP协议同一层的协议,IMCP报文通常被IP层或者更高层的协议(如:TCP或者UDP)使用,ICMP对于互联网以及其他基于IP协议的网络的正常运行起着非常重要的作用。有许多重要的网络程序都是...
在网络环境下,我们最感兴趣的两个命名空间是System.Net和System.Net.Sockets。System.Net命名空间通常与较高程的操作有关,例如download或upload,试用HTTP和其他协议进行Web请求等等,而System.Net.Sockets命名空间所包含的类通常与较低程的操作有关。如果要直接使用Sockets或者TCP/IP之类的协议,这个命名空间的类是非常有用的。 ...
Microsoft.Net Framework为应用程序访问Internet提供了分层的、可扩展的以及受管辖的网络服务,其名字空间System.Net和System.Net.Sockets包含丰富的类可以开发多种网络应用程序。.Net类采用的分层结构允许应用程序在不同的控制级别上访问网络,开发人员可以根据需要选择针对不同的级别编制程序,这些级别几乎囊括了Internet的所有需要--从...

经验教程

528

收藏

15
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部