Fondamentalement, j'ai besoin de servir des fichiers à partir d'un emplacement qui nécessite une authentification Windows. Au lieu d'avoir directement affaire à mon client, je voudrais mettre en place un processus pour qu'ils puissent simplement télécharger les fichiers comme s'ils étaient sur mon serveur, après qu'ils se soient connectés à mon système, bien sûr. Voici ce que j'ai jusqu'à présent, ce qui ne semble pas fonctionner correctement:Comment télécharger un fichier et le servir immédiatement au client dans 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();
Lorsque je tente cela, je suis en mesure de voir le fichier, mais quelque chose ne va pas avec l'encodage ou le type de contenu et, pour Par exemple, un PDF contiendra 16 pages vierges (au lieu de 16 pages de texte).
Une idée de ce qui me manque?
Ne hésitez pas à changer le titre de cette question s'il y a une meilleure façon de formuler cette question
Mise à jour: Essayé les deux réponses ci-dessous, mais sans succès. Je pense maintenant que le type de contenu et l'encodage sont OK, mais peut-être l'authentification échoue? La longueur du contenu est beaucoup plus petite qu'elle ne devrait l'être ... Suis-je en utilisant la mauvaise méthode pour l'authentification Windows?
Vous devriez inspecter ce que vous obtenez de la demande intérieure. Peut-être que vous récupérez HTML sous la forme d'une page d'erreur du serveur. – Jacob