Witam.

Może od razu kod:

public void LoginTo(string username, string password)
        {
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(this.Url + "login.php");
            string values =
                "username=" + username +
                "&password=" + password +
                "&redirect=";

            req.Method = "POST";
            req.ContentType = "application/x-www-form-urlencoded";
            req.ContentLength = values.Length;
            req.KeepAlive = true;
            req.UserAgent = "Mozilla/5.0 (Windows NT 5.1; rv:2.0) Gecko/20100101 Firefox/4.0";
            CookieContainer a = new CookieContainer();
            req.CookieContainer = a;

            ServicePointManager.Expect100Continue = false; // prevents 417 error

            using (StreamWriter writer = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.Default))
            {
                writer.Write(values);
            }

            HttpWebResponse c = (HttpWebResponse)req.GetResponse();
            StreamReader reader = new StreamReader(c.GetResponseStream());

            formResponseWatcher formResponseWatcher = new formResponseWatcher();
            formResponseWatcher.SetResponseContent(reader.ReadToEnd());
            formResponseWatcher.Show();

            foreach (Cookie cook in c.Cookies)
            {
                Cookie += cook + ";";
            }
        }

Kod wydaje się być prawidłowy, jednak w odpowiedzi dostaję kod źródłowy, który przedstawia stronę logowania, czyli tę samą co na początku.
Brakuje jakichś zmiennych? Ja wyłapałem tylko username, password i redirect.

Pozdrawiam.