Создание поддоменов с использованием C # - PullRequest
0 голосов
/ 13 июня 2018

У меня есть вопрос относительно создания поддоменов с использованием C #.Таким образом, идея заключается в том, что пользователь может создать поддомен в нашем веб-приложении следующим образом:

username.example.com 

или

  username2.example.com

Я знаком со статическими / динамическими маршрутами.Я предполагаю, что это может быть сделано с одним из тех или с виртуальным каталогом?

Как это можно сделать в C # и .NET?

1 Ответ

0 голосов
/ 13 июня 2018

Во-первых, допустим, что у вас есть выделенный IP-адрес для вашего сайта, чтобы избежать привязки к IIS

Второй шаг: допустим, вы используете BIND для DNS, поэтому вы открываете правильный текстовый файл и добавляетеили удалите правильный поддомен с обновлением метки времени и перезапустите службу BIND с помощью командного вызова из asp.net… (вам нужно знать некоторые базовые сведения для DNS и предоставить доступ к пулу, чтобы иметь возможность читать/ write туда)

Затем вы можете прочитать при первом вызове global.asax Application_BeginRequest

HttpContext.Current.Request.Path

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

HttpContext.Current.RewritePath

Что-то вроде

username.example.com  -> example.com/users.aspx?userid=123456

Это общая идея всего вместе (это на global.asax ) ...

protected void Application_BeginRequest(Object sender, EventArgs e)
{
    string sThePathToReWrite = sFindTheRealPath();

    if (sThePathToReWrite != null){
        HttpContext.Current.RewritePath(sThePathToReWrite, false);
    }       
}

string sFindTheRealPath()
{
    string strCurrentPath = HttpContext.Current.Request.Path;   

    // analyze the strCurrentPath 
    // find for example the userid from the url
    // and return the translate one - if not find anything return null
    return "example.com/users.aspx?userid=" + userid        
}
...