HttpContext.Current.Request.Url.Host
- содержимое заголовка узла, которое получает приложение ASP.net. (см. http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html для получения дополнительной информации о HTTP-заголовках, таких как Host
).
Обычно заголовок, который видит ASP.NET, идентичен заголовку Host
, отправляемому браузером. Однако возможно, что они не будут совпадать, если между браузером и вашим кодом ASP.net находится программное или аппаратное обеспечение, которое переписывает заголовок Host
.
Например, крупные бюджетные хостеры, такие как GoDaddy, делают это, чтобы они могли поддерживать несколько доменов верхнего уровня на одном веб-сайте IIS, даже на более дешевых тарифных планах хостинга. Вместо создания отдельного веб-сайта IIS (что увеличивает нагрузку на сервер и, следовательно, стоимость), GoDaddy переназначает запросы на http://secondsite.com/ в виртуальный каталог на вашем «основном» размещенном сайте, например, http://firstsite.com/secondsite). Они изменят как заголовок Host:, так и URL.
Кстати, вы можете легко убедиться в том, что именно это и происходит, сбросив содержимое Заголовки HTTP-запросов , которое получает ваше приложение.
В любом случае, если вы хотите выяснить, кто меняет заголовок узла, начните с людей, которые размещают ваше веб-приложение (или с группы, которая отвечает за ваш балансировщик нагрузки и / или обратный прокси-сервер), поскольку они, скорее всего, ответственные за переписывание заголовка вашего хоста.