1

我读过这方面的冲突内容:在 ASP.Net(和 MVC)中,是否Request.Url.Host返回请求的主机标头?我已经看到了首先检查的代码Request.Headers["host"],然后在出现问题时降级为使用Request.Url.Host,但我不明白如果它们相同,为什么需要这样做。

4

1 回答 1

8

它们并不相同。

HttpRequest.Headers["Host"]使您可以直接访问客户端到服务器的 HTTP 标头。

HttpRequest.Url由 ASP.NET 重建,Host:默认情况下它确实使用传入请求的标头,但是有一个内部设置UseHostHeaderForRequestUrl,如果将其设置为,false则 ASP.NET 将HttpRequest.Headers["SERVER_NAME"]改为使用,但在某些情况下它使用 value of"127.0.0.1"代替。

于 2013-07-23T19:32:39.590 回答