using System;
using System.DirectoryServices;
public class Example21_16
{
public static void Main()
{
// connect to AD
DirectoryEntry de = new DirectoryEntry(
"WinNT://DomanName/MachineName", "Administrator", "Password");
foreach(DirectoryEntry child in de.Children)
{
Console.WriteLine(child.SchemaClassName + ": " + child.Name);
}
}
}
DirectoryServices DirectoryEntry
using System;
using System.Net;
using System.DirectoryServices;
using System.DirectoryServices.Protocols;
public class MainClass {
public static void Main() {
using (DirectoryEntry de = new DirectoryEntry()) {
de.Path = "LDAP://yourSite/rootDSE";
de.Username = @"explorerchris";
de.Password = "password";
PropertyCollection props = de.Properties;
foreach (string prop in props.PropertyNames) {
PropertyValueCollection values = props[prop];
foreach (string val in values) {
Console.Write(prop + ": ");
Console.WriteLine(val);
}
}
}
}
}
Using DirectorySearcher
using System;
using System.Net;
using System.DirectoryServices;
public class MainClass {
public static void Main() {
using (DirectoryEntry de = new DirectoryEntry("LDAP://yourV/OU=yourV, DC=explorer, DC=local"))
using (DirectorySearcher searcher = new DirectorySearcher()) {
de.Username = @"exploreryourName";
de.Password = "password";
searcher.SearchRoot = de;
searcher.Filter = "(&(objectClass=user)(description=Auth*))";
searcher.SearchScope = System.DirectoryServices.SearchScope.Subtree;
searcher.PropertiesToLoad.Add("name");
searcher.PropertiesToLoad.Add("description");
searcher.PropertiesToLoad.Add("givenName");
searcher.PropertiesToLoad.Add("wWWHomePage");
searcher.Sort = new SortOption("givenName", SortDirection.Ascending);
SearchResultCollection results = searcher.FindAll();
foreach (SearchResult result in results) {
ResultPropertyCollection props = result.Properties;
foreach (string propName in props.PropertyNames) {
Console.Write(propName + ": ");
Console.WriteLine(props[propName][0]);
}
}
}
}
}
Web server
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Threading;
class MainClass {
private static int maxRequestHandlers = 5;
private static int requestHandlerID = 0;
private static HttpListener listener;
private static void RequestHandler(IAsyncResult result) {
try {
HttpListenerContext context = listener.EndGetContext(result);
StreamWriter sw = new StreamWriter(context.Response.OutputStream, Encoding.UTF8);
sw.WriteLine(“
sw.WriteLine(“” + result.AsyncState);
sw.WriteLine(““);
sw.Flush();
context.Response.ContentType = “text/html”;
context.Response.ContentEncoding = Encoding.UTF8;
context.Response.Close();
} catch (ObjectDisposedException) {
Console.WriteLine(result.AsyncState);
} finally {
if (listener.IsListening) {
listener.BeginGetContext(RequestHandler, “RequestHandler_” + Interlocked.Increment(ref requestHandlerID));
}
}
}
public static void Main(string[] args) {
using (listener = new HttpListener()) {
listener.Prefixes.Add(“http://localhost:8080/”);
listener.Start();
for (int count = 0; count < maxRequestHandlers; count++) {
listener.BeginGetContext(RequestHandler, "RequestHandler_" +
Interlocked.Increment(ref requestHandlerID));
}
Console.WriteLine("Press Enter to stop the HTTP Server");
Console.ReadLine();
listener.Stop();
listener.Abort();
}
}
}
[/csharp]
Get HTTP Response headers
using System;
using System.IO;
using System.Net;
public class TryHttpRequest {
public static void Main(String [] args) {
HttpWebRequest request =(HttpWebRequest)WebRequest.Create("http://www.kutayzorlu.com/java2s/com");
HttpWebResponse response =(HttpWebResponse)request.GetResponse();
request.Accept = "text/plain";
Console.WriteLine("Response headers");
Console.WriteLine(" Protocol version: {0}", response.ProtocolVersion);
Console.WriteLine(" Status code: {0}",response.StatusCode);
Console.WriteLine(" Status description: {0}",response.StatusDescription);
Console.WriteLine(" Content encoding: {0}",response.ContentEncoding);
Console.WriteLine(" Content length: {0}",response.ContentLength);
Console.WriteLine(" Content type: {0}",response.ContentType);
Console.WriteLine(" Last Modified: {0}",response.LastModified);
Console.WriteLine(" Server: {0}", response.Server);
Console.WriteLine(" Length using method: {0}
",response.GetResponseHeader("Content-Length"));
}
}
Get HTTP Request Headers
using System;
using System.IO;
using System.Net;
public class TryHttpRequest {
public static void Main(String [] args) {
HttpWebRequest request =(HttpWebRequest)WebRequest.Create(“http://www.kutayzorlu.com/java2s/com”);
HttpWebResponse response =(HttpWebResponse)request.GetResponse();
request.Accept = “text/plain”;
Console.WriteLine(“Request header count: {0}”,request.Headers.Count);
WebHeaderCollection header = request.Headers;
for (int i = 0; i < header.Count; i++)
Console.WriteLine(" {0} : {1}",header.GetKey(i), header[i]);
}
}
[/csharp]
Uses WebRequest and WebResponse. Tests use HTTP and the file protocol
using System;
using System.IO;
using System.Net;
public class TryWebRequest {
public static void Main(String [] args) {
WebRequest request = WebRequest.Create(“http://www.kutayzorlu.com/java2s/com”);
WebResponse response = request.GetResponse();
Console.WriteLine(“Content length: {0}”, response.ContentLength);
Console.WriteLine(“Content type: {0}
“, response.ContentType);
Console.WriteLine(“Request header count: {0}”, request.Headers.Count);
WebHeaderCollection header = request.Headers;
for (int i = 0; i < header.Count; i++)
Console.WriteLine("{0} : {1}", header.GetKey(i), header[i]);
Console.WriteLine();
StreamReader input = new StreamReader(response.GetResponseStream());
Console.WriteLine(input.ReadToEnd());
input.Close();
}
}
[/csharp]

