Автоматическое связывание с пользовательскими доменами в IIS 7.5 из .NET Web Application (MVC 3) - PullRequest
0 голосов
/ 23 февраля 2011

Я создаю веб-приложение, в котором будет базовая библиотека и база данных, которые совместно используются многими экземплярами.Чтобы привести более конкретный пример, скажем, у меня есть движок для ведения блогов, и пользователи могут зарегистрироваться в своем собственном блоге, который будет действовать независимо от других пользователей системы.

Каждый экземпляр должен иметь свой собственный поддомен, например: http://john.extremeblogging.tld/, а также иметь возможность привязать к нему свой собственный домен, например: http://jonnyblogger.tld/

ПроблемаЯ не знаю, как уведомить IIS 7.5, что делать, когда поступают запросы из любого из этих доменов.Это так же просто, как установить это веб-приложение на сайт по умолчанию в IIS, и приложение может использовать заголовки запросов для выполнения соответствующих действий?

Меня поражает, что это должно быть довольно распространенной задачей, поэтому я не ожидаю, что это будет слишком сложно решить, но в настоящий момент я не уверен, как подойти к ней.

Любое руководство приветствуется.

Спасибо

1 Ответ

1 голос
/ 25 июня 2014

id

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

Мне довелось работать над большим мультисервисным SaaS-сервером.Проект арендатора, в котором задействованы уникальные субдомены для каждого из пользователей сайта.Пользователь может создавать и управлять контентом на своем собственном сайте.

При регистрации арендатора / пользователя мы можем добавить привязку домена к IIS с использованием C # по этой ссылке -

http://amitpatelit.com/2013/03/12/enter-iis-binding-entry-by-c-code/

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

protected override void OnAuthorization(AuthorizationContext filter_context)
{
    var url = Request.Headers["HOST"];
    var index = url.IndexOf(".");
    if(index > 0)
    {
    var sub = url.Split('.')[0];
    FrontSiteData = CommonService.GetSiteData(sub);
    }
}

Пожалуйста, дайте мне знать, если вам требуется дополнительная информация.

С уважением,

Маник

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