Как запретить доступ к документу URL в ASP. NET Решении? - PullRequest
0 голосов
/ 29 апреля 2020

У меня возникает проблема / ошибка, когда я набираю "https://localhost: 12345 / Help / ExampleDocument.pdf ", PDF-файл просто будет успешно отображаться в IE. Я бы предпочел, чтобы пользователи получали доступ к этому документу только после того, как прошли проверку подлинности, и достигли пункта меню, который я подключил, чтобы отобразить этот документ / ссылку на отдельной странице. Как я могу убедиться, что пользователи не могут получить доступ к документам папки stati c внутри решения с домашней страницы приложения? Я пробежался по некоторым связанным статьям и увидел некоторые предложения, которые намекают на работу на уровне HTTP-запросов ... но мне интересно, должен ли я замедлять каждый запрос, чтобы проверять подобные вещи?

Наш ASP Приложение имеет Global.asax.cs файл, который включает в себя такие методы, как:

protected void Application_Start(object sender, EventArgs e)
protected void Application_BeginRequest(object sender, EventArgs e)
protected void Application_PreRequestHandlerExecute(object sender, EventArgs e)

Так что, я думаю, я мог бы добавить сюда некоторые условия, чтобы остановить выполнение запросов или, по крайней мере, попробовать, но есть ли лучше способ защиты документов в решении Visual Studio?

Документ в настоящее время находится по адресу Solution\WebApp\Help\ExampleDocument.pdf

1 Ответ

1 голос
/ 29 апреля 2020

В настоящее время вы предоставляете доступ по основному c HTTP. Безопасность старой папки HTTP - это предел того, что вы можете сделать. Эта система никогда не была разработана для входа в систему или безопасности.

HTTP 5 может иметь какое-то лучшее решение, но обычно вам необходимо:

  • Не предоставлять файл / папку через HTTP
  • Запись и регистрация обработчика HTTP, который будет извлекать и возвращать данные.
  • В обработчике вы можете выполнять любые необходимые действия, включая проверку входа в систему + перенаправление

Эти обработчики особенно используются при доставке больших двоичных объектов из базы данных. И это может быть сценарий BLOB / БД. Если это так, у вас могут быть решения по проектированию .

Но некоторые веб-серверы также используют эти обработчики для таких вещей, как «загрузка структуры папок в виде * .zip-файла».

ASP. Net HTTP обработчик может быть наиболее распространенным инструментом, вы никогда не понимали, что использовали: https://support.microsoft.com/en-us/help/307985/info-asp-net-http-modules-and-http-handlers-overview

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