Задайте ContentDisposition, если вы хотите дать новое имя для файла: Response.Headers.Add("Content-Disposition", "attachment: filename=file.pdf");
Запишите содержимое, используя Response.OutputStream, как сказал г-н Копп.
Шаг 2 не является абсолютно необходимым, но, вероятно, это хорошая идея, если вы не хотите, чтобы браузер пытался сохранить PDF с тем же именем, что и ваш ASPX файл.
Ответ 3
Запишите двоичный файл в выходной поток, Response.OutputStream. Затем просто добавьте заголовок Content-Disposition.
Ответ 4
Вы можете просто настроить обработчик или страницу, задающую правильный тип ответа, и вывести pdf в выходной буфер ответа.