HttpContext.Current.Request.ServerVariables [“HTTP_HOST”]返回内部地址?

时间:2012-08-22 12:25:09

标签: asp.net request.servervariables

我有一个包含在标记中的ascx控件:

<a href="<%# GetName() %>">

在ascx.cs代码隐藏文件中,我有以下内容:

protected string GetName() {
    return HttpContext.Current.Request.ServerVariables["HTTP_HOST"];
}

在codebehind中,还有一个按钮处理程序,它调用此方法:

protected void myButtonClick(object sender, EventArgs e) 
{
    string server = GetName();
    ...
}

当我请求包含https://my.site.com/test.aspx之类控件的页面时,页面会显示外部名称(my.site.com),但是当我点击按钮时,代码隐藏处理程序中的调用获取内部名称(my123.test.local)。

有人可以向我解释为什么会有区别吗? 我如何在代码隐藏中获得外部域名?

P.S。 SERVER_NAME和HTTP_HOST都给出了相同的结果。

此外,当我从互联网(https://my.site.com/test.aspx)访问包含以下内容的页面时:

Response.Write("SERVER_NAME 1: " + Request["SERVER_NAME"]);
Response.Write("SERVER_NAME 2: " + HttpContext.Current.Request.ServerVariables["SERVER_NAME"]);

第一行显示内部名称,第二行显示外部地址,如:

SERVER_NAME 1: my123.test.local
SERVER_NAME 2: my.site.com

0 个答案:

没有答案