Почему HttpContext.Current.Request.Url.Host возвращает другой URL-адрес, чем URL-адрес, используемый в веб-браузере? Например, при входе в «www.someurl.com» в браузере переменная HttpContext.Current.Request.Url.Host равна «www.someotherurl.com».Где происхождение HttpContext.Current.Request.Url.Host?
ответ
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.
BTW, вы можете легко убедиться, что это то, что происходит, сбросив содержимое HTTP Request Headers, которое получает ваше приложение.
В любом случае, если вы хотите выяснить, кто изменил заголовок хоста, начните с людей, которые размещают ваше веб-приложение (или команда, которая отвечает за ваш балансировщик нагрузки и/или обратный прокси-сервер), поскольку они вероятно, те, кто отвечает за переписывание заголовка вашего хоста.
- 1. Установка HttpContext.Current.Request.Url.Host
- 2. HttpContext.Current.Request.Url.Host возвращает строку чисел
- 3. HttpContext.Current.Request.Url.Host и window.location.host заглавные
- 4. Где происхождение системы координат датчика?
- 5. Неправильный хост вернулся с использованием HttpContext.Current.Request.Url.Host
- 6. Где установить происхождение пространства модели для solvePnP
- 7. Происхождение запроса AJAX - DevTools
- 8. Происхождение TimeoutException
- 9. Каково происхождение системы :: Process.new?
- 10. Где написать Access-Control-Allow-Origin: или Происхождение в javascript?
- 11. php Mysql, как отметить происхождение, когда несколько ГДЕ?
- 12. Происхождение OmniAuth - Где был/auth/facebook, вызванный от
- 13. Каково происхождение «запуска ракет»?
- 14. C многопоточное происхождение
- 15. Реагировать Docs - происхождение "serverRequest"
- 16. решающее происхождение векторов
- 17. выяснить происхождение вызова сценария
- 18. Почему происхождение/голова находится в другом положении, чем происхождение/мастер?
- 19. Как исследовать происхождение Excel?
- 20. Происхождение прямоугольника в CGRectMake
- 21. Терминальное состояние между HttpContext.Current.Request.Url.Host и HttpContext.Current.Request.Url.Authority на странице aspx
- 22. Происхождение ArrayIndexOutOfBoundsException в android?
- 23. Происхождение MSSqlLocalDB и ProjectsV ##
- 24. Происхождение «: //» во многих синтаксисах URI
- 25. Происхождение в окне программы Löve?
- 26. Происхождение к координатам экрана directx
- 27. GitHub перепятнышки/происхождение префиксы
- 28. Происхождение слова Рефакторинг
- 29. Происхождение соединения нити
- 30. Происхождение-таблица назначения присоединяется
хорошо, как это отличается от этого? Это похоже на то, что вы запрашиваете http://www.cnn.com, но Url.Host показывает «www.disney.com», или там какой-то разумный образец? –
Они похожи. Более близким примером является то, что URL-адрес, введенный в браузере, - «www.mysite.net», но переменная Url.Host возвращает «www.mysitexy.net». Это только последние две буквы имени хоста, «xy», который добавляется. Я полагаю, что это может быть связано с тем, что mysitexy доступен только внутри брандмауэра и mysite, доступных внутри и снаружи брандмауэра. –