是否有可能Request.ServerVariables [“HTTP_HOST”]。ToString()可以返回与我在url栏中看到的不同的主机

时间:2011-01-05 20:22:22

标签: c# asp.net http-host

假设我通过http://www.mypage.com/test.aspx访问了一个远程页面。在该页面上,我使用代码Request.ServerVariables [“HTTP_HOST”]。ToString()。是否有可能当我访问该页面时,代码可以返回一个不同于我在网址栏http://www.mypage.com/test.aspx中看到的网址?任何帮助,将不胜感激。感谢。

5 个答案:

答案 0 :(得分:3)

您可以看到IIS已绑定到您的Web实例的任何名称。因此,如果您的服务器名为“server1”且IP地址为123.123.123.123,并且所有这三个服务器都绑定到您的IIS实例,则可以看到任何这些值。

要查找绑定的名称,请打开“Internet信息服务(IIS)管理器”(启动,管理工具),展开树,直到看到您的站点。找到你正在使用的那个。右键单击并选择“绑定”。编辑列表中的每个绑定。如果他们都说[IP地址:]“全部未分配”,则您的HTTP_HOST可能是1.您通过DNS配置的WWW地址,2。机器名称3. IP地址。

答案 1 :(得分:1)

尝试使用:

HttpContext.Current.Request.ServerVariables["SERVER_NAME"]

我希望这会有效。

答案 2 :(得分:1)

我也遇到了HttpContext.Current.Request.ServerVariables [“HTTP_HOST”]的问题,并想出来了。检索主机名的最佳方法是“HttpContext.Current.Request.Url.Host”。它解决了我的问题。

谢谢, 拉吉

答案 3 :(得分:0)

有可能,是的。在您自己的代码能够检查之前,isapi_rewrite模块可以修改HTTP_HOST的值。

答案 4 :(得分:0)

有人已经提到了本地重写器(isapi_rewrite),但也有远程的,比如ISA Server发布你的服务器。发送原始主机标题(客户输入的内容)或在发布设置中输入的标题是一种配置方式。