Csharp/CSharp Tutorial/Directory Services/Read
Содержание
Get DirectoryEntry Path
<source lang="csharp">using System; using System.DirectoryServices; class MainClass {
public static void Main() { DirectoryEntry de2 = new DirectoryEntry("LDAP://192.168.1.100/ou=auditing, dc=accounting, dc=ispnet1, dc=net"); string newpath = de2.Path; Console.WriteLine("new path: {0}", newpath); de2.Close(); }
}</source>
new path: LDAP://192.168.1.100/ou=auditing, dc=accounting, dc=ispnet1, dc=net
Get MultiValued Attribute
<source lang="csharp">using System; using System.Runtime.InteropServices; using System.DirectoryServices; using ActiveDs; public unsafe class MainClass {
public static int Main(string[] args) { string Path = "LDAP://dsaddom.nttest.microsoft.ru/rootDSE"; IADs pIADs = null; DirectoryEntry Entry = new DirectoryEntry(Path); pIADs = (IADs)Entry.NativeObject; Array NamingContexts = (Array)pIADs.Get("namingContexts"); for(int i = 0; i < NamingContexts.GetLength(0); i++) { Console.WriteLine((string)NamingContexts.GetValue(i)); } Array Contexts = (Array)pIADs.GetEx("namingContexts"); for(int i = 0; i < NamingContexts.GetLength(0); i++) { Console.WriteLine((string)Contexts.GetValue(i)); } return 0; }
}</source>
Get Properties
<source lang="csharp">using System; using System.DirectoryServices; class MainClass {
public static void Main() { DirectoryEntry de = new DirectoryEntry( "LDAP://192.168.1.100/cn=kblum, ou=sales, dc=ispnet1, dc=net"); Console.WriteLine("object: {0}", de.Path); PropertyCollection pc = de.Properties; foreach(string propName in pc.PropertyNames) { foreach(object value in de.Properties[propName]) Console.WriteLine(" property = {0} value = {1}", propName, value); } }
}</source>
object: LDAP://192.168.1.100/cn=kblum, ou=sales, dc=ispnet1, dc=net ^CTerminate batch job (Y/N)? n
Get Property Collection
<source lang="csharp">using System; using System.DirectoryServices; public class MainClass {
public static int Main(string[] args) { DirectoryEntry MyDirectoryObject = new DirectoryEntry(); //Port 389 is LDAP Port MyDirectoryObject.Path = "LDAP://HMSRevenge:389/OU=Users,DC=Test,DC=COM"; MyDirectoryObject.Username = @"Test\AAA"; MyDirectoryObject.Password = @"MyPassword"; PropertyCollection MyAttributes = MyDirectoryObject.Properties; foreach(string MyAttributeName in MyAttributes.PropertyNames) { PropertyValueCollection MyAttributeValues = MyAttributes[MyAttributeName]; foreach(string MyValue in MyAttributeValues) { Console.WriteLine(MyAttributeName + " = " + MyValue); } } return 0; }
}</source>
Get Property Collection using PropertyCache
<source lang="csharp">using System; using System.DirectoryServices; public class MainClass {
public static int Main(string[] args) { DirectoryEntry MyDirectoryObject = new DirectoryEntry(); MyDirectoryObject.Path = "LDAP://HMSRevenge/rootDSE"; MyDirectoryObject.Username = @"AAA\BBB"; MyDirectoryObject.Password = @"MyPassword"; MyDirectoryObject.UsePropertyCache = false; DirectoryEntries MyChildObjects = MyDirectoryObject.Children; PropertyCollection MyAttributes = MyDirectoryObject.Properties; foreach(string MyAttributeName in MyAttributes.PropertyNames) { PropertyValueCollection MyAttributeValues = MyAttributes[MyAttributeName]; foreach(string MyValue in MyAttributeValues) { Console.WriteLine(MyAttributeName + " = " + MyValue); } } return 0; }
}</source>
Get Single Attribute
<source lang="csharp">using System; using System.Runtime.InteropServices; using System.DirectoryServices; using ActiveDs; public unsafe class MainClass {
public static int Main(string[] args) { string Path = "LDAP://dsaddom.nttest.microsoft.ru/rootDSE"; IADs pIADs = null; DirectoryEntry Entry = new DirectoryEntry(Path); pIADs = (IADs)Entry.NativeObject; string DefaultNamingContext = (string)pIADs.Get("defaultNamingContext"); Console.WriteLine(DefaultNamingContext); Array NamingContext = (Array)pIADs.GetEx("defaultNamingContext"); for(int i = 0; i < NamingContext.GetLength(0); i++) { Console.WriteLine((string)NamingContext.GetValue(i)); } return 0; }
}</source>
List Objects
<source lang="csharp">using System; using System.Collections; using System.DirectoryServices; class MainClass {
public static void Main() { DirectoryEntry de = new DirectoryEntry( "LDAP://192.168.1.100/dc=ispnet1, dc=net"); Console.WriteLine(de.Path); DirectoryEntries des = de.Children; foreach(DirectoryEntry entry in des) { Console.WriteLine(" child: " + entry.Name); } }
}</source>
LDAP://192.168.1.100/dc=ispnet1, dc=net ^CTerminate batch job (Y/N)? n
Reading Known Directory Objects
<source lang="csharp">using System; using System.DirectoryServices; public class MainClass {
public static int Main(string[] args) { DirectoryEntry MyObject = new DirectoryEntry(); MyObject.Path = "LDAP://HMSRevenge/OU=Users,DC=Test,DC=com"; foreach(string MyValue in MyObject.Properties["email"]) Console.WriteLine("Email" + " : " + MyValue); return 0; }
}</source>
Retrieves Active Directory information
<source lang="csharp">using System; using System.DirectoryServices; class MainClass {
public static void Main() { DirectoryEntry de = new DirectoryEntry("WinNT://DomanName/MachineName", "Administrator", "Password"); foreach(DirectoryEntry child in de.Children) { Console.WriteLine(child.SchemaClassName + ": " + child.Name); } }
}</source>