Grundsätzlich muss ich Dateien von einem Ort liefern, der Windows-Authentifizierung erfordert. Anstatt meinen Kunden direkt damit zu beschäftigen, möchte ich einen Prozess implementieren, so dass sie die Dateien einfach so herunterladen können, als wären sie auf meinem Server, nachdem sie sich natürlich in meinem System angemeldet haben. Hier ist, was ich bisher, das scheint nicht richtig zu funktionieren:Wie lade ich eine Datei herunter und serviere sie sofort an den Client in ASP.NET?
// Create the request
WebRequest request = HttpWebRequest.Create(button.CommandArgument);
request.Credentials = new NetworkCredential(_username,_password);
// Get the response
WebResponse response = request.GetResponse();
StreamReader responseStream = new StreamReader(response.GetResponseStream());
// Send the response directly to output
Response.ContentEncoding = responseStream.CurrentEncoding;
Response.ContentType = request.ContentType;
Response.Write(responseStream.ReadToEnd());
Response.End();
Wenn ich versuche, das ich bin in der Lage, die Datei zu sehen, aber etwas stimmt nicht mit der Codierung oder dem Inhaltstyp und für Beispiel: Eine PDF enthält 16 leere Seiten (anstelle von 16 Seiten Text).
Irgendeine Idee was vermisse ich?
Spüren Sie den Titel dieser Frage zu ändern frei, wenn es eine bessere Art und Weise der Phrasierung diese Frage
-Update ist: die beiden Antworten unten, aber ohne Glück versucht. Ich denke jetzt, dass der Inhaltstyp und die Codierung in Ordnung sind, aber vielleicht schlägt die Authentifizierung fehl? Die Inhaltslänge ist viel kleiner als es eigentlich sein sollte ... Benutze ich die falsche Methode für die Windows-Authentifizierung?
Sie sollten überprüfen, was Sie von der inneren Anforderung zurück erhalten. Vielleicht erhalten Sie HTML in Form einer Fehlerseite vom Server zurück. – Jacob