Ho provato anche a convertire la mia classe MyPC da HttpWebRequest a WebClient in questo modo:
codice:
using System;
using System.IO;
using System.Net;
using System.Text;
using MyApp.Utility;

namespace MyApp.Proxy
{
	public class MyPC : Proxy
	{
		private WebClient m_client;

		public MyPC() : base()
		{
			m_client = new WebClient();
		}

		public override StreamReader RequestData(string url)
		{
			return RequestData(url, RequestMethod.Get);
		}

		public override StreamReader RequestData(string url, RequestMethod method)
		{
			return RequestData(url, method, null);
		}

		public override StreamReader RequestData(string url, RequestMethod method, HttpPostData postData)
		{
			try
			{
				m_client.Headers.Clear();

				if (m_userAgent != String.Empty)
					m_client.Headers.Add("User-Agent", m_userAgent);

				if (m_referer != String.Empty)
					m_client.Headers.Add("Referer", m_referer);

				m_referer = url;

				if (method == RequestMethod.Post && postData != null)
				{
					postData.ToString();
					m_client.Headers.Add("Content-Type", "application/x-www-form-urlencoded");

					Stream memory = new MemoryStream(m_client.UploadData(new Uri(url), Encoding.UTF8.GetBytes(postData.Compiled)));
					StreamReader reader = new StreamReader(memory, Encoding.UTF8);
					return reader;
				}
				else
				{
					m_client.Headers.Add("Content-Type", "text/html");
					Stream memory = new MemoryStream(m_client.DownloadData(new Uri(url)));
					StreamReader reader = new StreamReader(memory, Encoding.UTF8);
					return reader;
				}
			}
			catch (Exception e)
			{
				Log.Error(e.ToString());
				return null;
			}
		}
	}
}
Però il risultato non cambia.
Al richiamo della prima pagina di login con passaggio dei post data. Avviene il login.
E al secondo richiamo di un altra pagina, mi restituisce che il login non è avvenuto.
Ho letto su Google che WebClient memorizza in automatico i cookie, ma sembra che ciò non avviene.

Qualche consiglio?