В основном мне нужно обслуживать файлы из местоположения, которое требует проверки подлинности Windows. Вместо того чтобы иметь дело с моим клиентом напрямую, я хотел бы реализовать процесс, чтобы они могли просто загружать файлы, как если бы они были на моем сервере, после того, как они, конечно, вошли в мою систему. Вот то, что у меня есть, и кажется, что оно работает неправильно:
// 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();
Когда я пытаюсь это сделать, я могу просмотреть файл, но что-то не так с кодировкой или типом содержимого, и, например, PDF будет содержать 16 пустых страниц (вместо 16 страниц текста).
Есть идеи, что мне не хватает?
Не стесняйтесь менять заголовок этого вопроса, если есть лучший способ сформулировать этот вопрос
Обновление:
Попробовал два ответа ниже, но безуспешно. Теперь я думаю, что с типом контента и кодировкой все в порядке, но, возможно, аутентификация не удалась? Длина содержимого намного меньше, чем должна быть на самом деле ... Использую ли я неверный метод для проверки подлинности Windows?