Logowanie do Gmaila za pomocą C# - użycie domyślnej przeglądarki

0

Cześć,
Napisałem program do logowania się na Gmail’a. Wykorzystałem kontrolkę webBrowser, i HtmlDocument , HtmlElement (wiem, można się logować za pomocą HttpWebRequest, HttpWebResponse, ale nie potrafię przygotować stringa z Posta ). Wszystko niby działa, ale jest jeden minus-> strona ładuje się w webBrowser. Chciałbym aby po kliknięciu w programie na button „Zaloguj” otworzyła się domyślna przeglądarka ze skrzynką pocztową Gmail’a Nie mam pomysłu jak to zrobić. I teraz zwracam się do was o pomoc w tej sprawie. Czekam na wszelkie propozycje :)

0
System.Diagnostics.Process.Start("http://mail.google.com")

?

0

Robiąc to powyższym sposobem otwiera mi się strona z logowaniem (tam gdzie się wpisuje login i hasło) w przeglądarce, mimo że w webBrowser uruchamia się proces logowania a później skrzynka odbiorcza.

0

niemożliwe

chociaż w praktyce możesz:

  1. poziom very hard: edytować przed odpaleniem strony plik z ciasteczkami (dla każdej przeglądarki w innej lokalizacji z innym formatem) i wszczepić ciasteczka które dostaniesz w aplikacji w procesie logowania
  2. poziom hard: stworzyć wtyczkę do przeglądarek, komunikować się z nią za pomocą c#
  3. poziom medium: otworzyć nie stronę logowania, ale scriptlet - czyli kod javascript wysyłający formularz logowania do odpowiedniej strony; minusy: hasło będzie łatwe do przechwycenia bo poleci plaintekstem, będzie też widoczne przez chwilę w pasku adresu jeśli go nie ukryjesz, a także cały czas w pamięci komputera jako parametr odpalający przeglądarkę (chyba że odpalisz inaczej); całą logike logowania musisz przenieść z c# do javascript i działanie zależy od konfiguracji serwera; w większości przypadków zapewne nie zadziała
  4. poziom easy: otworzyć przeglądarkę, wysłać do niej sekwencję klawiszy potrzebnych do zalogowania

jeszcze by się znalazło pełno sposobów
jak na razie odradzam wszystkie tu zamieszczone

0

A jeżeli spróbował bym zalogować się za pomocą HtppWebRequest? Czy dałoby się wtedy otworzyć stronę w domyślnej przeglądarce? Niżej napisałem kod do logowania się na stronie 4programmers.

private void button1_Click(object sender, EventArgs e)
        {
            //GET
            CookieContainer cookies = new CookieContainer();

            HttpWebRequest request =     (HttpWebRequest)HttpWebRequest.Create("http://4programmers.net/Logowanie");
            request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0";
            request.Method = "GET";
            request.Proxy.Credentials = CredentialCache.DefaultCredentials;
            request.CookieContainer = cookies;
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            response.Close();

            //POST

            request = (HttpWebRequest)HttpWebRequest.Create("http://4programmers.net/Logowanie");
            request.Method = "POST";
            request.CookieContainer = cookies;

            string loginData = String.Format("referer=http%3A%2F%2F4programmers.net/Forum%2F&hash53889ff7ba410=afd76af4aa07ddcd6124bf5c0d3987c1&name={0}&password={1}", textBox1.Text,textBox2.Text);
            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();
            Stream stream = response.GetResponseStream();
            webBrowser1.DocumentText = (new StreamReader(stream, Encoding.GetEncoding("iso-8859-2"))).ReadToEnd();
            stream.Close();
            response.Close();
           
        }

Niestety w webBrowser pojawia mi się strona z logowaniem... Możecie popatrzeć na kod i powiedzieć co jest źle?

0

Pomoże ktoś?

0

to nie podziała. musiałbyś przenieść utworzone ciastka do zewnętrznej przeglądarki. a jak jeszcze google ma zabezpieczenia przed podpieprzaniem ciastek (a zapewne ma) to jak zobaczy innego user agenta to I TAK nie zaloguje.

pytanie: po co to robisz? dla mnie lepiej znaleźć inne rozwiązanie tego tematu, niż na siłę próbować rozwiązywać to.

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