Laden...

Einloggen auf Webseite in Windows Forms Anwendung eingebetteter Webseite

Erstellt von accSharp vor 7 Jahren Letzter Beitrag vor 7 Jahren 1.708 Views
A
accSharp Themenstarter:in
11 Beiträge seit 2015
vor 7 Jahren
Einloggen auf Webseite in Windows Forms Anwendung eingebetteter Webseite

Hallo zusammen,

ich habe eine Webseite in eine Windows Forms Anwendung eingebettet und möchte mich dort per Click Event einloggen.

Das ist der Code:


        private void Portal_Anmelden(object sender, EventArgs e)
        {
            WebClient wClient = new WebClient();
            wClient.Proxy.Credentials = CredentialCache.DefaultCredentials;
            string strSource = wClient.DownloadString(browser.PROXY_URL);

            byte[] bytes = System.Text.Encoding.ASCII.GetBytes("text=" + Browser.USER + "&password=" + Browser.PWD + "&");

            WebRequest req = System.Net.WebRequest.Create(Browser.WEB_START);
            req.ContentType = "application/x-www-form-urlencoded";
            req.Method = "POST";
            req.ContentLength = bytes.Length;

            Stream os = req.GetRequestStream();
            os.Write(bytes, 0, bytes.Length); 
            os.Close();

            WebResponse resp = req.GetResponse();
            StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream());
            string a = sr.ReadToEnd().Trim();
            var x = resp.ResponseUri; 

            // Browser.Navigate("about:blank");
            Browser.Navigate(x.AbsolutePath); 
        }

Mein Problem: Das WebResponse Objekt gibt mir nur die Webseite wieder, auf der Login stattfinden soll. Das Objekt Browser wurde aus einer von WebBrowser abgeleiteten Klasse instanziert. Die URL der Webseite lautet: https://sisyr.hlg.de/wps/portal/SISY/Home/WILLKOMMEN/!ut/p/b1/04_Sj9Q1NTc2NzMxNdeP0I_KSyzLTE8syczPS8zRD_TJT09PTfEvLQFJRZnFO5sFhDo6GToaGHg5mRh4uoWZGBu4BBkYuJsBFUQCFRjgAI4GhPSH60ehKnE38jMCKnEKdvRzdjc2CDSCKsBjhR_CvbmRUWnBAemKAKKLYTg!/dl4/d5/L2dBISEvZ0FBIS9nQSEh

Ich freue mich auf Eure Antworten und danke recht herzlich!

16.807 Beiträge seit 2008
vor 7 Jahren

Du kannst mit Hilfe der Chrome Web Tools oder Fiddler erkennen, was die Webseite schickt und ob/wie Du auf die Antwort reagieren musst, zB. eine Umleitung.
So können wir auch nicht sagen, was Du nun tun musst.

Was Du genau auf der Hermes Webseite runterladen willst ist mir aber ein Rätsel.
Hermes bietet doch auch eine REST API an...Zudem scheint die Hermes Seite hier nicht Web Forms zu sein, sondern eine JavaScript-basierte Single Page Application.

A
accSharp Themenstarter:in
11 Beiträge seit 2015
vor 7 Jahren

Ok, vielen Dank für den Hinweis mit Fiddler - das werde ich mir mal näher anschauen. D.h. im Umkehrschluss, dass der Code aus Deiner Sicht zunächst mal inhaltlich korrekt zu sein scheint?

Der Hinweis zur Hermes API ist auch interessant. Ja die Seite von Hermes scheint JavaScript basiert zu sein. Wäre das ein Problem in Bezug auf WebRequests?

16.807 Beiträge seit 2008
vor 7 Jahren

Nein, ich gehe nicht davon aus, dass der Code korrekt ist, weil Du damit nicht die Inhalte einer SPA auslesen kannst.
Aber genau deswegen gibt es APIs. Betreiber von Webseiten achten nicht darauf, dass sich Daten über die UI auslesen lassen; wozu auch - das eben ist der Sinn einer API.