2016-07-12 3 views
2

Relativ neu in C#, aber gute Fortschritte.Festlegen von Netzwerkanmeldeinformationen für einfache Webanforderung

Ich versuche derzeit, eine System.Net.WebRequest-Methode zu testen. Verwenden Sie das nützliche http-Testkit unter https://httpbin.org/ - Ich versuche, Netzwerk-Anmeldeinformationen an https://httpbin.org/basic-auth/user/passwd zu übergeben und eine erfolgreiche Verbindung abzurufen. (Currently get 401's)

Der Benutzername ist Benutzer, und das Passwort ist passwrd.

Ich habe ein einfaches Formular, und Schaltfläche, die die Anfrage startet. Wie gesagt, es funktioniert nicht, und ich bekomme einen Fehler 401. Hier

ist das, was ich bisher:

 private void button1_Click(object sender, EventArgs e) 
    { 

     NetworkCredential myCred = new NetworkCredential(
     "user", "passwrd", "https://httpbin.org"); 


     // Create a request for the URL. 
     WebRequest request = WebRequest.Create(
      "https://httpbin.org/basic-auth/user/passwd"); 
     // If required by the server, set the credentials. 
     request.Credentials = myCred; 
     // Get the response. 
     WebResponse response = request.GetResponse(); 
     // Display the status. 
     Console.WriteLine(((HttpWebResponse)response).StatusDescription); 
     // Get the stream containing content returned by the server. 
     Stream dataStream = response.GetResponseStream(); 
     // Open the stream using a StreamReader for easy access. 
     StreamReader reader = new StreamReader(dataStream); 
     // Read the content. 
     string responseFromServer = reader.ReadToEnd(); 
     // Display the content. 
     Console.WriteLine(responseFromServer); 
     // Clean up the streams and the response. 
     reader.Close(); 
     response.Close(); 
    } 
+1

Passwort ist 'passwd' nicht' passwrd' ... – SimpleVar

+0

Haha! Das ist ein guter Anfang! - Ich bekomme immer noch den Fehler. – bushell

+0

Ich glaube Domain sieht nicht so aus: "https://httpbin.org". Es muss so etwas wie "MYDOMAIN \ myusername" –

Antwort

2

Das Problem mit Ihren Anmeldeinformationen ist, Sie gehen davon aus, dass domain die HTTP-Domäne ist, aber das ist nur sinnvoll, für so etwas wie Active Directory-Domänen. Entfernen Sie einfach den Parameter (und das Passwort beheben) und es wird funktionieren:

NetworkCredential myCred = new NetworkCredential("user", "passwd"); 
Verwandte Themen