Можно ли управлять поддоменами программно в приложении ASP.Net? - PullRequest
3 голосов
/ 02 октября 2009

У меня есть приложение, которое будет написано в ASP.Net 3.5, которое должно управлять поддоменами для другого веб-сайта. Управляющий веб-сайт и контролируемый веб-сайт размещены на разных серверах Windows, но оба работают под управлением IIS 6.0.

Веб-сайт управления должен предоставлять пользовательский интерфейс, который может добавлять или удалять субдомены на контролируемом сайте, чтобы запросы к этим субдоменам (т. Е. Mysubdomain.controlledsite.com и thatothersubdomain.controlledsite.com) перемещались по различным разделам контролируемых сайтов. веб-приложение (или, если необходимо, настроить все это, на различные веб-приложения, которые затем также должны быть созданы или удалены программно).

С чего мне начать? Это вообще возможно? Я видел в некоторых других SO-вопросах ( Возможно ли сделать маршрут ASP.Net MVC на основе поддоменов? ) что-то о маршрутах, но я не знаю, подходит ли это моей ситуации или нет (Я не использую MVC). Я могу изменить код как на веб-сайте управления, так и на контролируемом веб-сайте, поэтому, если необходимо выполнить программирование для выполнения этой работы с любой стороны, я могу это сделать.

Если быть точным, если код остается таким же, как на контролируемом сайте (я могу изменить его при необходимости), мне нужно получать запросы типа http://xxxx.mysite.com/ и сопоставлять их с http://www.mysite.com/Home/xxxx/, пока сохраняя URL, который клиент видит как прежний.

Ответы [ 2 ]

2 голосов
/ 02 октября 2009

Этого можно достичь, переписав URL, что можно сделать в ASP.Net, написав модуль HTTP (класс, реализующий IHttpModule) и используя метод RewritePath объекта HttpContext

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

Следующие ссылки объясняют понятия подробнее:

С IIS 6 их настройка может быть немного сложнее, ищите статьи по настройке подстановочных путей.
Кроме того, я не совсем уверен, будет ли этот подход работать с поддоменами или нет.

0 голосов
/ 07 октября 2009

Платформа маршрутизации по умолчанию, включенная в asp.net MVC, не может использовать доменную часть URL-адресов. Я был немного разочарован этим сам. Но есть статья об использовании пользовательского RouteBase для включения сценария субдомена. Хотя я еще не пробовал, поэтому не могу ручаться за описанную технику, но она выглядит многообещающе как отправная точка, по крайней мере.

Что касается административных веб-инструментов для управления всем этим ... вам нужно будет развернуть свои собственные административные инструменты. Как вы это сделаете, во многом зависит от того, как разработаны ваши приложения. Я бы просто привязал оба приложения к одной и той же базе данных SQL для хранения каждого маршрута субдомена. Интерфейс администратора для этого должен быть довольно тривиальным. Достаточно простого набора страниц для выполнения операций CRUD с маршрутами, хранящимися в БД.

В global.asax другого сайта (общедоступного) вы просто выбираете маршруты из БД и регистрируете каждый в отдельности.

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