Как создать динамический поддомен с ASP.NET? - PullRequest
3 голосов
/ 09 февраля 2012

Как я могу создать поддомен в приложении asp.net C #?Я работаю с порталом asp.net.

У меня есть свой сайт, который перенаправляет все * .domain.com звонки на domain.com.Я хочу сказать, что сначала, когда пользователь вводит динамическое имя субдомена, его следует направить на его домашнюю страницу, например, если пользователь пишет www.microsite1.domain.com, тогда сайт должен указывать на страницу ~ / Microsite / Home.aspx? value = microsite1, и когда пользователь получает доступ к www.microsite1.domain.com/about.aspx, я должен получить аргумент value1 = about.

1 Ответ

4 голосов
/ 09 февраля 2012

Первый шаг - разместить имя субдомена на хост-сервере DNS.Для этого вам нужно манипулировать файлами DNS.Например, если вы используете BIND в качестве DNS-сервера, вы идете и открываете текстовый файл, который сохраняет конфигурацию DNS, например: «c: \ program files \ dns \ var \ mysite.com», и там вы добавляете строку как

subdomain.mysite.com.   IN  A   111.222.333.444

Также вы изменяете идентификатор файла, чтобы дать BIND сообщение об обновлении поддоменов.

Второй шаг - перенаправить новый поддомен в правильный каталог.Вы делаете это на protected void Application_BeginRequest(Object sender, EventArgs e) на Global.asax, используя rewritepath

protected void Application_BeginRequest(Object sender, EventArgs e)
{
    if (HttpContext.Current.Request.Url.Host.StartsWith("subdomain."))
    {
        // here you need to find where to redirect him by reading the url
        // and find the correct file.
        HttpContext.Current.RewritePath("/subdomain/" + Request.Path, false);
    }


    // .... rest code   
}

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

...