рендеринг PDF на веб-страницу asp.net приводит к статическому заголовку - PullRequest
2 голосов
/ 22 ноября 2010

возникла небольшая проблема, из-за которой я рендерил pdf (сохраненный в виде байтового массива) на веб-страницу asp.net, используя следующий код:

Response.ClearContent();
Response.AppendHeader("content-length", document.Length.ToString());
Response.ContentType = "application/pdf";
Response.BinaryWrite(document);
Response.Flush();
Response.Close();

Это работает без каких-либо проблем, однако для рендеринга этого PDF-файла (т. Е. Возврата байтового массива) мы вызываем веб-сервис, передавая несколько параметров в QueryString. Вот тут и возникает проблема. После рендеринга PDF он отображает заголовок в виде полной строки URL-адреса + страницы. очевидно, по соображениям безопасности мы не хотим, чтобы пользователи получали эту информацию.

Кто-нибудь знает, как установить заголовок страницы после вывода pdf? Я попытался сделать заголовок запустить серверную сторону, однако это не имеет никакого эффекта. Интересно, что если рендеринг pdf завершился неудачно или метод данных не прошел до того, как он был изменен, он корректно меняет заголовок. почти как когда он попадает в pdf рендеринг, он меняет заголовок обратно на строку url / query.

в дополнение к этому я также проверил заголовок PDF, который был возвращен веб-службой, и заголовок, сохраненный в свойствах PDF, полностью отличается от заголовка, отображаемого в строке заголовка страницы.

Любая помощь будет принята с благодарностью,
Cheers,
Адам

1 Ответ

2 голосов
/ 22 ноября 2010

Ваш головной блок очищается с помощью:

Response.ClearContent();

Таким образом, даже если вы устанавливаете его в <title>...</title>, вы никогда не отправите его клиенту.

Учитываятип контента application/pdf браузер не знает, как отобразить заголовок, поэтому он отображает URL.

Непрозрачность не является формой безопасности, и если вы полагаетесь на пользователя, не знающегоURL-адрес, чтобы предотвратить повторную загрузку файла, необходимо переосмыслить.С помощью инструмента проверки сети они легко смогут увидеть, какие ресурсы они запрашивают, даже если вы запутываете URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...