Разрешить все поддомены

#.net #asp.net-core #asp.net-mvc-routing #asp.net-core-mvc #.net-core

#.net #asp.net-ядро #asp.net-mvc-routing #asp.net-core-mvc #.net-ядро

Вопрос:

Я пытаюсь настроить новое приложение .NET Core MVC, чтобы разрешить все поддомены для многопользовательского приложения. Я добавил ограничение маршрута, чтобы я мог извлекать информацию об арендаторе, но не могу заставить мое решение разрешить любые поддомены. Я хотел бы добиться этого без необходимости редактировать мой локальный файл Windows hosts для тестирования. Возможно ли это?

Комментарии:

1. Как вы собираетесь протестировать несколько поддоменов на своем локальном компьютере без редактирования файла hosts? Ваше приложение .NET Core MVC прослушивает все входящие запросы по вашему локальному IP-адресу (или тому, что вы настроили в своем WebHostBuilder , но если вы хотите протестировать любые другие имена хостов localhost , вам нужно добавить их в файл hosts. В проекте saaskit есть хороший способ справиться с несколькими арендаторами. Вы могли бы взглянуть на это: github.com/saaskit/saaskit

Ответ №1:

В случае, если у кого-то еще есть эта «проблема», я закончил тем, что использовал домен, который перенаправляет обратно на мой локальный компьютер — подробности см. На Этом веб-сайте.

Ответ №2:

Вы правы, если вы запускаете project под iisExpress , вы должны установить некоторую конфигурацию.
но если вы запустите свой проект с dotnet run ним, это позволит вам использовать любой поддомен, который вы хотите…

Ответ №3:

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

Примерные шаги:

1) Настройте локальный DNS-сервер и настройте локальную сеть компьютера разработки на использование IP-адреса DNS-сервера 2) Настройте домен (такой локальный, как домен, который я всегда делаю, и установите *.local для указания IP-адреса вашего компьютера разработки, поэтому поддомен будет SiteA.local, SiteB.local и т. Д.) 3) В вашем приложении .NET Core MVC. прослушивайте определенный порт (обычно я делаю это как прослушивающий порт 80 для HTTP напрямую, но убедитесь, что вы запускаете приложение с правами администратора, если вам нужен удобный порт 80 вместо портов, таких как 5000)

4) viola, наслаждайтесь, поскольку все поддомены local (такие как SiteA.local, SiteB.local и т. Д.) Будут Указывать на вашу локальную машину разработки, А затем иметь приложение .NET Core MVC для обслуживания всех доменов