Fragensteller
WebClient und Credentials

Allgemeine Diskussion
-
Hallo,
ich habe ein Problem beim Aufruf einer Url, welche eine Authentifizierung erfordert. Dieser Service soll einen Fehler zurücksetzen.
Ich rufe folgendes auf:
string user = ConfigurationManager.AppSettings["user"].ToString().Trim(); string pw = ConfigurationManager.AppSettings["pw"].ToString().Trim(); string url = string.Empty; url = ConfigurationManager.AppSettings["reseturl"].ToString().Trim(); string port = ConfigurationManager.AppSettings["port"].ToString().Trim(); string tid = ConfigurationManager.AppSettings["terminal"].ToString().Trim(); string req = ConfigurationManager.AppSettings["req"].ToString().Trim(); url += "&port=" + port + "&tid=" + tid + "&req=" + req; WriteStatistic(url); WebClient client = new WebClient(); if (!string.IsNullOrEmpty(user) && !string.IsNullOrEmpty(pw)) { client.Credentials = new NetworkCredential(user, pw); } string content = client.DownloadString(url); WriteStatistic("Alarm resetted: " + content);
Ich erhalte dann dieses :
<html> <head> <title>ARCB webservice v2.2.2</title> <link rel="stylesheet" href="kl1.css" type="text/css"> <link rel="Shortcut Icon" type="image/x-icon" href="d_d.png" /> </head> <body> <blockquote> <h2>Login</h2> <table width="700" cellpadding="5"><tr><td bgcolor="#e0e0ff"> <form action="auth.klx" method=post> Username: <input type=text name=usr><p> Password: <input type=password name=pwd><p> <input type=submit name=login> </form> </td></tr></table> <font size="-1"> <a href=index.klx>Back to the main page</a> </font> </blockquote> </body> </html>
Das heißt, dass die Login Seite zurückgegeben wird.
Was kann ich noch probieren, dass ich das hin bekomme?
Gruß
Mario
- Typ geändert Ciprian Bogdan Freitag, 21. März 2014 16:01 keine Rückmeldung des Fragestellenden
Alle Antworten
-
Hallo,
das Angeben der WebCredentials haben keine Auswirkung auf das selbst geschriebene Login-System der Webseite.
Am einfachsten hast du es, wenn du beim Betreiber der Webseite nachfragst, ob er irgend eine einfacher zu bedeinende Schnittstelle anbietet.Alternativ kannst du dich mit dem WebBrowser-Control von WinForms versuchen. Nachfolgend mal ein Beispiel für das Login bei outlook.com:
//Wird ausgelöst, wenn das Dokument geladen wurde private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { //Da deine Elemente scheinbar keine id-Eigenschaft haben, ein Alterntaivweg /*foreach (HtmlElement input in webBrowser1.Document.GetElementsByTagName("input")) { //Alle input-Tags durchgehen if (input.GetAttribute("name") == "usr") //Element für Benutzername usrBox = input; if (input.GetAttribute("name") == "pwd") //Element für Passwort pwdBox = input; }*/ //Anhand der id-Eigenschaft abfragen geht einfacher: var pwdBox = webBrowser1.Document.GetElementById("i0116");//Benutzername-Input-Box var usrBox = webBrowser1.Document.GetElementById("i0118");//Passwort-Input-Box //Werte setzen pwdBox.SetAttribute("value", "E-MAIL"); usrBox.SetAttribute("value", "PASSWORT"); //Button zum bestätigen finden und clicken //Du müsstest wieder nch der name-Eigenschaft gehen var btn = webBrowser1.Document.GetElementById("idSIButton9"); btn.InvokeMember("click");//Click-Event auslösen webBrowser1.DocumentCompleted -= webBrowser1_DocumentCompleted;//Event nach Login deabonnieren }
Wenn du den Code einfügst und deine E-Mail Adresse sowie dein Passwort ergänzt, wirst du den Inhalt deines Outlook-Postfachs sehen.Koopakiller [kuːpakɪllɐ] (Tom Lambert)
Webseite |
Code Beispiele |
Facebook |
Twitter |
Snippets
C# ↔ VB.NET Konverter
Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke. -
Hi,
Hat Dir die Antwort von Tom geholfen ? Wenn ja - bitte markiere diese "als Antwort".
Danke und Gruß,
Ciprian
Ciprian Bogdan, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip„Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
-
*****************************************************************************************************
Dieser Thread wurde mangels weiterer Beteiligung des Fragestellenden ohne bestätigte Lösung abgeschlossen.
Neue Rückfragen oder Ergänzungen zu diesem Thread bleiben weiterhin möglich.
*****************************************************************************************************Ciprian Bogdan, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip„Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.