ASP / VB байтовые массивы, iframes, родители, дети и переменные - PullRequest
1 голос
/ 22 июня 2011

У меня есть страница aspx, в которой находится фрейм. Когда кнопка нажата, вызывается WCF для создания PDF, который читается в байтовый массив. Я хранил байтовый массив в файле Globals.vb следующим образом:

Public Shared PDF_Data as Byte()

Глобал был загружен с родительской страницы aspx следующим образом:

PDF_Data = MyWCF.Create_PDF_File(SomeVariable)

После этого src iFrame был установлен на пустую страницу aspx, в которой был следующий код в событии page_load:

    'Write the PDF binary data to the screen (viewer)
    Response.Clear()
    Response.Buffer = True
    Response.ContentType = "application/pdf"
    Response.BinaryWrite(Globals.PDF_Data.ToArray)

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

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

Любые идеи будут с благодарностью!

Спасибо

Jason

1 Ответ

0 голосов
/ 22 июня 2011

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

Одно из предположений о том, что я использовал сохранение байтовых данных в базе данных с ключом и передачу этого ключа в iframe внутри URL со строкой запроса. В этом случае у вас должен быть способ очистить прошлые записи из БД, прежде чем он займет слишком много места. В зависимости от того, должен ли этот PDF-документ быть защищенным, он откроется, так что PDF-файл будет доступен для людей, которые возятся со строкой запроса.

Еще одно предложение, передавая его как данные POST в кодировке B64. Это пара предложений.

...