Как заставить ASP.NET полностью игнорировать виртуальный подкаталог - PullRequest
2 голосов
/ 31 мая 2011

У меня есть приложение ASP.NET MVC 3, которое находится, скажем, localhost / myapp под IIS.

Существует виртуальный каталог (не приложение) localhost / myapp / upload под этим приложением в IIS (версия 7+), который сопоставлен с сетевым ресурсом.

Я хочу, чтобы ASP.NET игнорировал запросы к файлам в этом каталоге и позволял IIS обрабатывать запрос самостоятельно.

Я пробовал что-то вроде добавления rout.IgnoreRoute ("upload / {* pathInfo}") в global.asax.cs, но все равно не повезло.

При получении ошибок ASP.NET, таких как , не удалось запустить мониторинг изменений в '\\ server \ share \ myupload \ web.config' , когда я пытаюсь получить доступ к статическому файлу, например, JPEG в этом каталоге.

В каталоге загрузки нет файла web.config. Это не приложение ASP.NET. И я не хочу предоставлять доступ к сетевому сервису или пользователю ASP.NET, чтобы он просто проверял, что такого файла там нет. Если я это сделаю, кто-нибудь загрузит туда файл .aspx и выполнит любой код на моем сервере.

Есть идеи?

1 Ответ

0 голосов
/ 20 июня 2011

Лучшим решением для этого случая, вероятно, будет отключение списка каталогов для этого каталога, как в этом руководстве:

http://technet.microsoft.com/en-us/library/cc731109(WS.10).aspx

А для ссылок на скачивание вы должны создать постоянную базу данных и сохранить их в базе данных. Поэтому, если у вас есть файл по адресу www.mysite.com/myapp/upload/file1.doc, то URL, который увидит пользователь, будет www.mysite.com/myapp/ControllerThatHandlesRedirect/ndomsome guid}. Все ссылки будут храниться в базе данных и будут взяты из базы данных в соответствии с определенным руководством. Таким образом, пользователь не увидит реальный URL только GUID. Контроллер будет выбирать URL из базы данных на основе постоянной ссылки и перенаправлять пользователя в этот файл.

Надеюсь, что вам поможет

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