HttpWebRequest работает по-разному в отладке / выпуске - PullRequest
1 голос
/ 28 сентября 2011

У меня проблема с кодом, потому что он работает по-разному, если я тестирую его в Visual Studio или тестирую на своем сайте.

Я пытаюсь выполнить автологин на внешнем веб-сайте.Если я тестирую его из VS, я правильно перенаправлен на внешний сайт.С моего сайта я получаю перенаправление на "http://www.MySite.com/cgi-bin/wbc_login/...."!!!!!

Код следующий:

private void MioMetodo(String username, String password)
{
    CookieContainer Cookies = new CookieContainer();

    Cookie langCookie = new Cookie("pk_lang", "\"italiano\"", "/");
    langCookie.Domain = "xxx.yy";
    Cookie loginCookie = new Cookie("wc_loginoslimit", "\"" + username + "\"", "/");
    loginCookie.Domain = "xxx.yy";
    Cookie passwordCookie = new Cookie("wc_passwordoslimit", "\"" + password + "\"", "/");
    passwordCookie.Domain = "xxx.yy";

    Cookies.Add(langCookie);
    Cookies.Add(loginCookie);
    Cookies.Add(passwordCookie);

    UTF8Encoding encoding = new UTF8Encoding();
    String postData = "wc_login=" + username + "&wc_password=" + password + "&limit=0&Avanti=Avanti";
    Byte[] data = encoding.GetBytes(postData);

    HttpWebRequest myHttpWebRequest = WebRequest.Create("http://xxx.yy/cgi-bin/wbc_login") as HttpWebRequest;
    myHttpWebRequest.Method = "POST";
    myHttpWebRequest.Referer = "http://xxx.yy/cgi-bin/wbc_login";

    myHttpWebRequest.Headers.Add(HttpRequestHeader.AcceptCharset, "ISO-8859-1,utf-8;q=0.7,*;q=0.3");
    myHttpWebRequest.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate,sdch");
    myHttpWebRequest.Headers.Add(HttpRequestHeader.AcceptLanguage, "it-IT,it;q=0.8,en-US;q=0.6,en;q=0.4");
    myHttpWebRequest.Headers.Add(HttpRequestHeader.CacheControl, "max-age=0");
    myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
    myHttpWebRequest.CookieContainer = Cookies;
    myHttpWebRequest.ContentLength = data.Length;

    Stream newStream = myHttpWebRequest.GetRequestStream();
    newStream.Write(data, 0, data.Length);
    newStream.Close();

    HttpWebResponse myHttpWebResponse = myHttpWebRequest.GetResponse() as HttpWebResponse;
    StreamReader streamRead =new StreamReader(myHttpWebResponse.GetResponseStream());
    Response.Write(streamRead.ReadToEnd());

    streamRead.Close();
    myHttpWebResponse.Close();
}

Заранее спасибо

...