Logowanie httpwebrequest Wordpress

0

Witam serdecznie,

Czy ktoś byłby w stanie mi pomóc? Staram się zalogować z poziomu c# do wordpressa, o ile w przypadku drupala nie stanowi to problemu, to do wordpressa zalogować się nie mogę (wykorzystuję httpwebrequest), podejrzewam, że jest jakiś problem z cookies, a przynajmniej tak doczytałem na innych stronach (niestety nigdzie nie znalazłem działającego rozwiązania).

string adres = "http://www.strona.pl";
CookieContainer cookies = new CookieContainer();
                ServicePointManager.Expect100Continue = false;

                HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://www.strona.pl/wp-admin/");
                request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1";
                request.Method = "GET";
                request.CookieContainer = cookies;
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                response.Close();
                

                //POST
                request = (HttpWebRequest)HttpWebRequest.Create("http://www.strona.pl/wp-login.php");
                request.Method = "POST";
                request.CookieContainer = cookies;
                string password = haslo;
                string loginData = String.Format("loginform=&log=admin&pwd=haslo&testcookie=1&rememberme=forever&redirect_to=" + Uri.EscapeDataString(adres) + "wp-admin/&wp-submit=" + Uri.EscapeDataString("Zaloguj się"));

                request.ContentType = "application/x-www-form-urlencoded";
                byte[] loginDataBytes = Encoding.ASCII.GetBytes(loginData);
                Stream postData = request.GetRequestStream();
                postData.Write(loginDataBytes, 0, loginDataBytes.Length);
                postData.Close();
                response = (HttpWebResponse)request.GetResponse();

                // KOLEJNY GET
                request = (HttpWebRequest)HttpWebRequest.Create(adres + "/wp-admin/");
                request.Method = "GET";
                request.CookieContainer = cookies;

                HttpWebResponse response1 = (HttpWebResponse)request.GetResponse();
                //     response.Close();
                Stream response1Stream = response1.GetResponseStream();
                StreamReader reader1 = new StreamReader(response1Stream);
                string input1 = reader1.ReadToEnd();
                response1.Close();
                richTextBox1.Text = input1;

Kod jest trochę pomotany, ale próbowałem to ugryźć z różnych stron i wyszedł taki potworek ;).

Będę ogromnie wdzięczny, jeśli ktoś jest mi w stanie udzielić odpowiedzi (xml-rpc nie wchodzi w grę, gdyż trzeba to włączyć w wordpressie).

0

Nikt nie jest w stanie pomóc?

1 użytkowników online, w tym zalogowanych: 0, gości: 1