У меня есть веб-API и веб-приложение, написанные на asp. net, и я хочу отправить PDF-файл из API в веб-приложение для отображения в новом окне браузера, API работает, отправляя файл в качестве потокового содержимого, но я не могу найти способ побудить браузер клиента отобразить это в новом окне, я не могу заставить браузер сделать запрос к API напрямую, так как мне нужно сначала добавить заголовок аутентификации.
У кого-нибудь есть идеи?
В качестве альтернативы, если это невозможно, я мог бы также загрузить файл на клиентскую машину, но я также не знаю, как это сделать.
код API:
public HttpResponseMessage Get()
{
var response = new HttpResponseMessage();
string auth;
try
{
auth = Request.Headers.Authorization.Parameter;
}catch { return new HttpResponseMessage(HttpStatusCode.Unauthorized); }
if (auth == "test" || auth == null)
{
FileStream stream = File.OpenRead(Path.Combine(Storage.FilesDirectory, "0d23b37f-3ade-4342-beea-c6ba2cbf83cb.file"));
response.Content = new StreamContent(stream);
response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/pdf");
return response;
}
else return new HttpResponseMessage(HttpStatusCode.Forbidden);
}
Текущий код клиента, который получает поток, но я не знаю, как отобразить его в браузере:
HttpRequestMessage req = new HttpRequestMessage(HttpMethod.Get, API.DocumentUrl);
req.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", "test");
var res = await HttpClientSingleton.Client.SendAsync(req);