Поддомены в приложении Asp.Net MVC - PullRequest
2 голосов
/ 11 ноября 2010

Helo Guys!

Я начну разрабатывать маркетинговый сайт, и пользователи смогут создавать аккаунты на этом сайте.Я хотел бы разделить область пользователей с использованием поддоменов, например wordpress.com, ning.com и т. Д. Если пользователь создает учетную запись, например: «john», веб-сайт должен ответить на john.mydomain.com заобласть пользователя, но это будет тот же код (разделяющий мой поддомен).

Я хотел бы знать, как я могу сделать код для идентификации учетной записи (в поддомене), чтобы показать правильную учетную запись длявеб-сайт ?

PS: Конечно, для показа веб-сайта не требуется аутентификация.

Спасибо

Ответы [ 2 ]

2 голосов
/ 11 ноября 2010

Обработка маршрута в asp.net mvc начинается после имени домена, поэтому его нельзя перехватить с помощью обычной обработки маршрута.

Вы можете создать обработчик маршрута, который добавляет субдомен в данные маршрута (беря его из Request.Url) до оценки маршрута.

2 голосов
/ 11 ноября 2010

Мой друг и я получили этот один из наших сайтов.У нас была таблица базы данных, которая содержала SiteId вместе с доменом.

В базовом контроллере мы проанализировали домен, когда он вошел, а затем нашли соответствующий SiteId в базе данных.Все контроллеры унаследованы от этого базового контроллера, и SiteId был передан для каждого вызова нашей модели.

Admin.Site.com -> SiteId = 1
Frank.Site.com -> SiteId = 2

Когда кто-то нажал Admin.Site.com, SiteId, равный 1, был передан в модель, чтобы либо получить данные, либо сохранить / отредактировать / добавить / удалить их.

Вот код, который мы использовали для получения домена:

public Website CurrentWebsite
{
    get
    {
        if (_website == null)
        {
            var domain = HttpContext.Request.Url.Host;
            _website = _websiteRepository.GetWebsiteByDomain(domain);
        }
        return _website;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...