Мы хотим, чтобы пользователи могли загружать большие файлы из нашей системы ASP.NET MVC2.
Мы предоставляем файлы методом Controller.File
, который транслируется от FileStream
до Response.OutputStream
.
Причина, по которой мы используем Controller.File
вместо предоставления прямой ссылки, заключается в том, что нам необходимо проверить правила безопасности для вошедшего в систему пользователя (проверка подлинности с помощью форм).
Что будет самым большим беспокойством при этом?
- Безопасность : нам, вероятно, потребуется увеличить время выполнения. Обнаруживает ли это проблемы безопасности?
- Память : Я предполагаю, что, поскольку Controller.File осуществляет потоковую передачу содержимого непосредственно с диска, последствия для памяти незначительны.
- CPU : я читал в различных блогах, что загрузка большого объема данных сильно загружает процессор, но это были неподтвержденные утверждения, поэтому я не нашел никаких рекомендаций от MS.
- Сеть : сколько одновременных загрузок возможно? Можем ли мы дросселировать, чтобы это не мешало другому движению?
- Другое
Какими будут ваши рекомендации?
Какие могут быть другие варианты, кроме прохождения через конвейер ASP.NET, но они все еще предоставляют нам данные, необходимые для проверки вошедшего в систему пользователя. Говорят, что ISAPI уменьшает процессор и память, может быть, здесь есть другие преимущества?
Существуют ли какие-либо (официальные) руководящие принципы или передовые практики, касающиеся этого?