//
// Copyright (c) 2002
// Ronald Kevin Burton
//
// Z poniższym kodem nie jest związana żadna gwarancja poprawności działania.
// Program został dołączony do książki ".NET CLR. Księga eksperta" w celu
// ilustracji koncepcji i zasad przedstawionych w tej książce. Program może być 
// używany na własne ryzyko.
//
// Przyznaje się prawo do użycia lub kopiowania tego oprogramowania do dowolnego celu
// bez konieczności ponoszenia żadnych opłat pod warunkiem, że powyższe uwagi zostaną 
// zachowane we wszystkich kopiach. Przyznaje się także prawo do modyfikacji kodu
// i dystrybucji zmodyfikowanego kodu pod warunkiem zachowania powyższych uwag
// oraz dołączenia informacji mówiącej o modyfikacji kodu.
//
// 
using System;
using System.Net;
using System.Text;
using System.IO;
using System.Security.Permissions;
using System.Text.RegularExpressions;

public class WebAccess
{
	public static void Main(string[] args) 
	{
		try
		{
			string address = "http://www.microsoft.com/";
			string policy = Regex.Escape("http://www.microsoft.com/") + "*";
			if(args.Length == 1)
				address = args[0];

			WebPermission wp = new WebPermission(PermissionState.None);
			wp.AddPermission(NetworkAccess.Connect, new Regex(policy));
			wp.PermitOnly();

			WebClient wc = new WebClient();

			Console.WriteLine(Encoding.ASCII.GetString(wc.DownloadData(address)));
		}
		catch(Exception ex)
		{
			Console.WriteLine(ex.ToString());
		}		
	}
}
