Request.ServerVariables ["SERVER_NAME"]始终是localhost

Gai*_*nde 12 asp.net

我正在使用Visual Studio 2008开发ASP.NET 3.5应用程序.

我的默认页面在Page_Load方法中有一些重定向代码:

    protected void Page_Load(object sender, EventArgs e)
    {

        string sname = Request.ServerVariables["SERVER_NAME"].ToLower();

        if (sname.ToLower().Contains("intranet"))
        {
        Response.Redirect("/intranet/Default.aspx");
        }
        else if ((sname.ToLower().Contains("extranet")))
        {
            Response.Redirect("/extranet/Default.aspx");
        }
        else {
            Response.Redirect("/web/Default.aspx");
        }
    }
Run Code Online (Sandbox Code Playgroud)

我修改了我的hosts文件,以便Intranet和Extranet重定向到我的本地计算机.

127.0.0.1       intranet
127.0.0.1       extranet
Run Code Online (Sandbox Code Playgroud)

然后我在浏览器中输入URL http:// extranet.

但是,问题是从Request.ServerVariables ["SERVER_NAME"]返回的服务器变量值始终是"localhost"而不是"extranet"

有关如何获得正确价值的任何帮助?

非常感谢

Gai*_*nde 13

Request.ServerVariables ["HTTP_HOST"]获取我正在寻找的值:)


小智 5

你是对的你想要检索请求来的网站的完整地址.不要使用"SERVER_NAME",请使用"HTTP_HOST".请阅读 http://www.requestservervariables.com/get-address-for-website