public bool IsReusable
{
get ( return true; }
}
public void ProcessRequest(HttpContext context)
{
byte[] ret = null;
// Открыть файл, специфицированный в контексте
string PhysicalPath = context.Server.MapPath(context.Request.Path);
using (FileStream fs = new FileStream(PhysicalPath, FileMode.Open))
{
ret = new byte[fs.Length];
fs.Read(ret, 0, (int)fs.Length);
}
// Если он не null, вернуть байтовый массив
if (ret != null)
{
context.Response.BinaryWrite(ret);
}
}
#endregion
}
}
Этот обработчик просто определяет локальный физический путь запрошенного ресурса вызовом Server.MapPath. Затем он использует FileStream для открытия ресурса и возврата байтов, включенных в этот ресурс. Вы также должны конфигурировать этот обработчик HTTP. Для этой цели нужно просто добавить раздел <httpHandlers> внутрь раздела <system.web> вашей конфигурации web.config, как показано ниже:
<httpHandlers>
<add verb="GET, POST"
path="*.txt"
type="RolesDemo.Handlers.GenericHandler"/>
</httpHandlers>
Проблемы с некоторыми типами файлов
Разработчики сообщают о некоторых проблемах при использовании аутентификации форм
для защиты файлов Acrobat (PDF). Возможно, подобные проблемы касаются и других типов
файлов, особенно если они требуют применения дополнительных подключаемых модулей
в браузерах.
Проблемы с PDF-файлами вызваны комбинацией компонента ActiveX, который позволяет
Internet Explorer отображать файлы Acrobat и IIS. Проблема состоит в том, что
PDF-файлы пересылаются от сервера клиенту по кусочкам, дабы пользователю не приходилось
ждать, пока загрузится весь файл, чтобы начать его просмотр. По некоторым причинам на
этом плохо отражается переадресация (например, методом Response.Redirect()).
Переадресация на PDF-файл заставляет браузер сообщать, что файл поврежден. Это
создает проблемы, если вы пытаетесь применить механизм аутентификации с помощью форм
для защиты файлов PDF. После того как пользователь регистрируется, перенаправление
обратно на запрошенный PDF
файл приводит к сообщению о том, что он поврежден, либо
к тому, что он просто не отображается.
предыдущая следующая страница вначало главы оглавление
952