2010-04-07 2 views
3

У меня возникают проблемы с путями в приложении ASP.NET MVC, которое работает за прокси.Запуск приложения ASP.NET MVC за прокси с другим корневым относительным путем

Наш IIS Application Корневой путь, например http://server/MyApp/

означает, что все адреса с помощью корня приложения ("~ /", Url.Action ("MyAction", "MyController")) разрешены к «/ MyApp "

Теперь мы бежим за прокси-сервер, который перенаправляет все запросы, но требует от вас, чтобы получить доступ к приложению через URL, как это: „/ Secury/Proxy/RubbishUrl/MyApp“

Поскольку прокси url доступен только на клиенте, я думал о создании файла cookie с префиксом пути и вставить этот b перед каждым сгенерированным URL-адресом на сервере.

Теперь вопрос заключается в том, какое лучшее место в коде для изменения каждого URL-адреса, который разрешен/отправлен клиенту (ресурсам, действиям контроллера, изображениям и т. Д.)?

Каждый путь в приложении разрешен с помощью методов MVC (Url.Content, Url.Action и т. Д.).

Update: не активно ищет ответ больше (хотя по-прежнему заинтересованы в надлежащем решении)

Большую часть времени Доверенные сделать свой собственный перевод URL, однако в этом случае прокси-сервер игнорирует пути которые передаются в JSON, и они обрабатываются.

Мое «решение» сейчас просто не проходит путь в формате JSON, но вместо этого:

  • с использованием надлежащих идентификаторов и значений в формате JSON запросы
  • создание шаблона в URL, в HTML (которые разрешены правильно),
  • заменить идентификаторы и значения в шаблоне URL со значениями из JSON запросов

Этот метод является на самом деле гораздо «чище» путь IMO затем прохождения URL.

+0

ОК, я удаляю, может быть, кто-то еще увидит это как безоговорочный и даст лучший ответ – Aristos

ответ

0

Вы можете создать свою собственную фабрику контроллера mpc asp.net, где будет решаться, какой контроллер и действие будут отвечать за ответ на запрошенный URL. Проверьте этот URL для хорошего сообщения в блоге о том, как это сделать - http://nayyeri.net/custom-controller-factory-in-asp-net-mvc.

+0

Нет, извините, это не позволяет мне изменять/исправлять URL-адреса, которые отправляются клиенту. Обратите внимание: нет понятия URL-адреса, который прокси-сервер генерирует вообще на сервере IIS, поскольку в отношении IIS URL-адрес по-прежнему остается только http: // server/MyApp / –