⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.cs

📁 TestAD is an example for active directory
💻 CS
📖 第 1 页 / 共 2 页
字号:
		#endregion

		#region Atributes
			BVA.ActiveDirectory.Navigator.Objects.RootNode rootNode = null;
		#endregion

		#region Event Handlers
		/// <summary>
		/// The main entry point for the application.
		/// </summary>
		[STAThread]
		static void Main() 
		{
			Application.Run(new Form1());
		}

		/// <summary>
		/// This method handles the load of the form.
		/// </summary>
		/// <param name="sender">Default Param.</param>
		/// <param name="e">Default Param.</param>
		private void Form1_Load(object sender, System.EventArgs e)
		{
						
		}

		/// <summary>
		/// This method handles the Load Tree Button Click.
		/// </summary>
		/// <param name="sender">Default Param.</param>
		/// <param name="e">Default Param.</param>
		private void btnLoadTree_Click(object sender, System.EventArgs e)
		{
			try
			{
				WaitCursor();
				LoadTreeRoot();
				DefaultCursor();
			}
			catch (Exception ex)
			{
				MessageBox.Show(ex.Message);
			}
		}

		/// <summary>
		/// This Method handles the click of a treeview item.
		/// </summary>
		/// <param name="sender">Default Param.</param>
		/// <param name="e">Default Param.</param>
		private void trvAD_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
		{
			try
			{
				ExtTreeNode selectedNode = (ExtTreeNode)e.Node;
				switch (selectedNode.NodeType)
				{
					case(BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.Root):
					{
						if (this.rootNode == null)
						{
							throw new Exception("Root Node not loaded!!! Please click Load Tree.");
						}
						LoadRootNodes(this.rootNode, e.Node);
						break;
					}
					case(BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.Container):
					{
						if (selectedNode.Value!=null)
						{
							LoadContainerNode(selectedNode);
						}
						break;
					}
					case(BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.OrganizationalUnit):
					{
						if (selectedNode.Value!=null)
						{
							LoadOUNode(selectedNode);
						}
						break;
					}
					case(BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.User):
					{
						if (selectedNode.Value!=null)
						{
							LoadUserNode(selectedNode);
						}
						break;
					}
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show(ex.Message);
			}
		}
		#endregion
		
		#region Methods

		#region Interface Methods
		private void WaitCursor()
		{
			System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
		}

		private void DefaultCursor()
		{
			System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default;
		}

		#endregion

		#region Tree Methods
		/// <summary>
		/// This method loads the root node of the tree.
		/// </summary>
		private void LoadTreeRoot()
		{
			DateTime t1 = DateTime.Now;
			
			this.trvAD.Nodes.Clear();
			ExtTreeNode root = new ExtTreeNode("Root Nodes",string.Empty, BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.Other);
			this.trvAD.Nodes.Add(root);
			root.Nodes.Clear();

			this.rootNode = BVA.ActiveDirectory.Navigator.Business.AdManager.GetRootNode(this.txtAdDomain.Text,this.txtAdUser.Text,this.txtAdPass.Text);
			if (this.rootNode!=null)
			{
				ExtTreeNode rooti = new ExtTreeNode(this.rootNode.Name,string.Empty, BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.Root);
				root.Nodes.Add(rooti);
			}
			else
			{
				throw new Exception("Root Node not found!!!");
			}
			
			this.statusBarQueryTime.Text = "Query Time: " + ((TimeSpan)DateTime.Now.Subtract(t1)).TotalSeconds.ToString("##0.00") + " secs";
		}

		/// <summary>
		/// This method loads all children nodes of the root node of the tree.
		/// </summary>
		/// <param name="r">Root Node of the AD tree.</param>
		/// <param name="tr">Roots Node of the TreeView.</param>
		private void LoadRootNodes(BVA.ActiveDirectory.Navigator.Objects.RootNode r, TreeNode tr)
		{
			DateTime t1 = DateTime.Now;
			
			tr.Nodes.Clear();

			ExtTreeNode ct = new ExtTreeNode ("Containers",string.Empty,BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.Other);
			tr.Nodes.Add(ct);
			foreach(BVA.ActiveDirectory.Navigator.Objects.Container c in r.Containers)
			{
				ExtTreeNode tri = new ExtTreeNode (c.Name,c.Id,BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.Container);
				ct.Nodes.Add(tri);
			}

			ExtTreeNode outr = new ExtTreeNode ("Organizational Units",string.Empty,BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.Other);
			tr.Nodes.Add(outr);
			foreach(BVA.ActiveDirectory.Navigator.Objects.OrganizationalUnit ou in r.OrganizationalUnits)
			{
				ExtTreeNode tri = new ExtTreeNode (ou.Name,ou.Id,BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.OrganizationalUnit);
				outr.Nodes.Add(tri);
			}

			ExtTreeNode grt = new ExtTreeNode ("Groups",string.Empty,BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.Other);
			tr.Nodes.Add(grt);
			foreach(BVA.ActiveDirectory.Navigator.Objects.Group g in r.Groups)
			{
				ExtTreeNode tri = new ExtTreeNode (g.Name,g.Id,BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.Group);
				grt.Nodes.Add(tri);
			}

			ExtTreeNode uc = new ExtTreeNode ("Users",string.Empty,BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.Other);
			tr.Nodes.Add(uc);
			foreach(BVA.ActiveDirectory.Navigator.Objects.User u in r.Users)
			{
				ExtTreeNode tri = new ExtTreeNode (u.UserName,u.Id,BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.User);
				uc.Nodes.Add(tri);
			}

			this.statusBarQueryTime.Text = "Query Time: " + ((TimeSpan)DateTime.Now.Subtract(t1)).TotalSeconds.ToString("##0.00") + " secs";
		}

		/// <summary>
		/// This method loads all children nodes in a container node.
		/// </summary>
		/// <param name="tr">Node to be loaded.</param>
		private void LoadContainerNode(ExtTreeNode tr)
		{
			DateTime t1 = DateTime.Now;

			BVA.ActiveDirectory.Navigator.Objects.Container r = BVA.ActiveDirectory.Navigator.Business.AdManager.GetContainer(tr.Value);
			
			tr.Nodes.Clear();

			ExtTreeNode ct = new ExtTreeNode ("Containers",string.Empty,BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.Other);
			tr.Nodes.Add(ct);
			foreach(BVA.ActiveDirectory.Navigator.Objects.Container c in r.Containers)
			{
				ExtTreeNode tri = new ExtTreeNode (c.Name,c.Id,BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.Container);
				ct.Nodes.Add(tri);
			}

			ExtTreeNode outr = new ExtTreeNode ("Organizational Units",string.Empty,BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.Other);
			tr.Nodes.Add(outr);
			foreach(BVA.ActiveDirectory.Navigator.Objects.OrganizationalUnit ou in r.OrganizationalUnits)
			{
				ExtTreeNode tri = new ExtTreeNode (ou.Name,ou.Id,BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.OrganizationalUnit);
				outr.Nodes.Add(tri);
			}

			ExtTreeNode grt = new ExtTreeNode ("Groups",string.Empty,BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.Other);
			tr.Nodes.Add(grt);
			foreach(BVA.ActiveDirectory.Navigator.Objects.Group g in r.Groups)
			{
				ExtTreeNode tri = new ExtTreeNode (g.Name,g.Id,BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.Group);
				grt.Nodes.Add(tri);
			}

			ExtTreeNode uc = new ExtTreeNode ("Users",string.Empty,BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.Other);
			tr.Nodes.Add(uc);
			foreach(BVA.ActiveDirectory.Navigator.Objects.User u in r.Users)
			{
				ExtTreeNode tri = new ExtTreeNode (u.UserName,u.Id,BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.User);
				uc.Nodes.Add(tri);
			}

			this.statusBarQueryTime.Text = "Query Time: " + ((TimeSpan)DateTime.Now.Subtract(t1)).TotalSeconds.ToString("##0.00") + " secs";
		}

		/// <summary>
		/// This method loads an Organizational Unit node.
		/// </summary>
		/// <param name="tr">Node to be loaded.</param>
		private void LoadOUNode(ExtTreeNode tr)
		{
			DateTime t1 = DateTime.Now;

			BVA.ActiveDirectory.Navigator.Objects.OrganizationalUnit r = BVA.ActiveDirectory.Navigator.Business.AdManager.GetOrganizationalUnit(tr.Value);
			
			tr.Nodes.Clear();

			ExtTreeNode ct = new ExtTreeNode ("Containers",string.Empty,BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.Other);
			tr.Nodes.Add(ct);
			foreach(BVA.ActiveDirectory.Navigator.Objects.Container c in r.Containers)
			{
				ExtTreeNode tri = new ExtTreeNode (c.Name,c.Id,BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.Container);
				ct.Nodes.Add(tri);
			}

			ExtTreeNode outr = new ExtTreeNode ("Organizational Units",string.Empty,BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.Other);
			tr.Nodes.Add(outr);
			foreach(BVA.ActiveDirectory.Navigator.Objects.OrganizationalUnit ou in r.OrganizationalUnits)
			{
				ExtTreeNode tri = new ExtTreeNode (ou.Name,ou.Id,BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.OrganizationalUnit);
				outr.Nodes.Add(tri);
			}

			ExtTreeNode grt = new ExtTreeNode ("Groups",string.Empty,BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.Other);
			tr.Nodes.Add(grt);
			foreach(BVA.ActiveDirectory.Navigator.Objects.Group g in r.Groups)
			{
				ExtTreeNode tri = new ExtTreeNode (g.Name,g.Id,BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.Group);
				grt.Nodes.Add(tri);
			}

			ExtTreeNode uc = new ExtTreeNode ("Users",string.Empty,BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.Other);
			tr.Nodes.Add(uc);
			foreach(BVA.ActiveDirectory.Navigator.Objects.User u in r.Users)
			{
				ExtTreeNode tri = new ExtTreeNode (u.UserName,u.Id,BVA.ActiveDirectory.Navigator.Objects.Auxiliary.ObjectTypes.User);
				uc.Nodes.Add(tri);
			}

			this.statusBarQueryTime.Text = "Query Time: " + ((TimeSpan)DateTime.Now.Subtract(t1)).TotalSeconds.ToString("##0.00") + " secs";
		}

		private void LoadUserNode(ExtTreeNode tr)
		{
			DateTime t1 = DateTime.Now;

			BVA.ActiveDirectory.Navigator.Objects.User r = BVA.ActiveDirectory.Navigator.Business.AdManager.GetUser(tr.Value);
			
			tr.Nodes.Clear();

			this.txtName.Text = r.UserName;

			this.txtObjectType.Text = "AD User";
			
			this.txtEmail.Text = r.Email;

			this.chkEnabled.Checked = r.Enabled;

			this.statusBarQueryTime.Text = "Query Time: " + ((TimeSpan)DateTime.Now.Subtract(t1)).TotalSeconds.ToString("##0.00") + " secs";
		}
		#endregion

		#endregion

	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -