почему мой IgnoreRoute не работает? - PullRequest
4 голосов
/ 23 августа 2011

Я хочу запретить пользователям доступ к моей папке "~ / Content / ...". Я написал ее следующим образом в "Global.asax.cs" и поместил эту строку кода в начале всех остальных маршрутов routes.IgnoreRoute("Content/{*pathInfo}");
но это не работает.на самом деле пользователь может видеть все файлы в папке содержимого, введя URL-адрес в браузере.я что-то упустил?

Ответы [ 2 ]

4 голосов
/ 23 августа 2011

Как вы поняли, что это не работает?Приведите пример.

Возможно, вы поместили его последним в таблицу маршрутизации.Поэтому попробуйте переместить его вверх, чтобы он был добавлен в таблицу маршрутизации first .Коллекция маршрутов представляет собой упорядоченный список маршрутов.

Также попробуйте это: Routes.IgnoreRoute("Content/");, но ваша версия игнорирования также правильна, и она должна работать.

Наконец, я не знаю, чтоВы имеете в виду, когда говорите, что пользователь может видеть все содержимое папки «Содержимое»: не в этом ли смысл?Пользователь должен иметь возможность загружать файлы из папки, и нам обычно просто нужно, чтобы MVC игнорировал запросы, поступающие в платформу, и чтобы IIS мог напрямую обслуживать эти файлы.

или вы имели в виду, что просмотр каталоговвключен, и вы хотите отключить это: в этом случае перейдите в диспетчер IIS, выберите свой веб-сайт, найдите параметр просмотра каталога и отключите его, как показано здесь .

2 голосов
/ 23 августа 2011

Ваша проблема не может быть решена с помощью ограничений маршрутизации.Процесс обработки запроса состоит из 3 важных этапов:

  1. IIS получил запрос.
  2. IIS отслеживает файловую систему и ищет прямое соответствие файлу
  3. Если IIS этого не сделалобнаружил любой файл - он дает запрос ASP.NET MVC для обработки.

Итак, вам нужно настроить защиту папок для запрета прямого доступа к файлам, но разрешить доступ к приложению, так как здесь.Но я не рекомендую защищать папку, которой следует поделиться.Я не верю, что на вашем сайте не должно быть изображений для отображения :) Если у вас есть защищенный контент, вам нужно создать еще одну папку.

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