Ich würde gerne wissen, warum meine asp.net-Anwendung nicht die Kopfzeile zu meinem Beitrag hinzufügen, wenn es "Autorisierung" genannt wird, aber funktionieren, wenn ich ein Zeichen ändern, sagen "Autorisierungen". In der Dokumentation für andere Seiten verwenden sie immer den Namen "Authorization", also möchte ich das auch und an dieser Stelle möchte ich nur nachvollziehen warum.ASP.NET HTTP Authorization Header
Ich habe ein paar Themen zu diesem Thema gelesen, habe aber keinen logischen Grund dafür gefunden.
Hier ist mein Code unten:
string fileName = "c:\\xyz.xml";
string uri = "http://myserver/Default.aspx";
req = WebRequest.Create(uri);
req.Method = "POST";
req.ContentType = "text/xml";
byte[] authBytes = Encoding.UTF8.GetBytes("DDSServices:jCole2011".ToCharArray());
req.Headers.Add("Authorization", "BASIC " + Convert.ToBase64String(authBytes));
req.Headers.Add("test", "test");
UTF8Encoding encoder = new UTF8Encoding();
byte[] data = encoder.GetBytes(this.GetTextFromXMLFile(fileName));
req.ContentLength = data.Length;
Stream reqStream = req.GetRequestStream();
reqStream.Write(data, 0, data.Length);
reqStream.Close();
req.Headers.Add("Authorization", "BASIC" + Convert.ToBase64String(authBytes));
System.Net.WebResponse response = req.GetResponse();
System.IO.StreamReader reader = new StreamReader(response.GetResponseStream());
string str = reader.ReadToEnd();
Das andere ärgerlich das ist, wenn ich die beobachtete Variable durch Fiedler hinzufügen funktioniert es gut.
oder gibt es eine logischer Grund? Eine sehr große Drittfirma, mit der wir arbeiten, hat eine Dokumentation mit ihrer Berechtigung auf die gleiche Weise, also würde ich gerne den Grund wissen. – Cody
Es ist viel besser, den NetworkCredential-Ansatz zu verwenden, wie Will es vorschlägt. Allerdings sollte Ihr Ansatz auch gut funktionieren, obwohl ich nicht verstehe, warum Sie es zweimal tun (einen vor dem Aufruf von GetRquestStream und einmal danach. Sie sollten es einmal tun, bevor Sie GetRequestStream aufrufen. Wenn es immer noch nicht funktioniert, erhalten Sie ein trace log. Anweisungen unter http://ferozedaud.blogspot.com/2009/08/tracing-with-systemnet.html – feroze
Können Sie mir sagen, warum es besser ist? Oder wo kann ich lesen, warum es besser ist? Anscheinend würde NetworkCredentials mit der Anzeigen- oder Formularauthentifizierung verbunden sein, ich würde lieber die Verbindung durch Anonymität herstellen und dann einfach verifizieren. Wie auch immer, kann mir jemand nur sagen, warum? Mir ist fast egal, was an diesem Punkt. – Cody