Защита паролем файлов в IIS без использования разрешения файлов NTFS - PullRequest
2 голосов
/ 14 мая 2009

Мы размещаем онлайн-отчеты о том, что клиент будет входить и просматривать. Отчеты представляют собой страницы ASP, которые извлекают необходимые номера из базы данных SQL Server. Сведения о доступе клиента также управляются таблицей в SQL Server.

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

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

1 Ответ

3 голосов
/ 14 мая 2009

Помещать PDF-файлы в БД не нужно. Вместо этого сохраняйте PDF-файлы в папке за пределами веб-папки. Хорошо далеко от публичного доступа. Создать записи в БД для местоположений каждого PDF с идентификатором номера. Предполагая, что у вас уже есть система аутентификации для пользователей, создайте другую таблицу, которая связывает идентификатор пользователя с идентификатором pdf, к которому у них есть доступ. Оттуда очень просто создать страницу, которая проверяет учетные данные по этой таблице доступа, открыть местоположение файла, предоставленное двоичной базой данных, и отклик, записывающий его содержимое. Вы можете найти несколько примеров этого, разбросанных по сети. Тем не менее, ASP classic имеет эту досадную привычку хранить весь файл в оперативной памяти, передавая его, что съедает ресурсы, о которых вы даже не мечтали. Я бы рекомендовал использовать скрипт ASP.Net, если это вообще возможно. Код тоже намного проще

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