Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET Request.UserHostName不包含主机名_Asp.net_C# 4.0 - Fatal编程技术网

ASP.NET Request.UserHostName不包含主机名

ASP.NET Request.UserHostName不包含主机名,asp.net,c#-4.0,Asp.net,C# 4.0,如果创建了新的数据集,我需要将请求计算机的主机名存储在数据库中。为了向用户清楚地表明这一点(这都是公司内部的),我们在用户填写的表单中显示这三个文本框。 这三个文本框的填充方式如下: protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { txtHostname.Text = Request.UserHostName.ToStrin

如果创建了新的数据集,我需要将请求计算机的主机名存储在数据库中。为了向用户清楚地表明这一点(这都是公司内部的),我们在用户填写的表单中显示这三个文本框。 这三个文本框的填充方式如下:

protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            txtHostname.Text = Request.UserHostName.ToString();
            txtIPAdress.Text = Request.UserHostAddress.ToString();
            txtWindowsLogin.Text = Request.LogonUserIdentity.Name.ToString();
        }
    }
但是,无论我测试的是哪个客户机,IP的反向查找(应该在Request.UserHostname中提供主机名)都不起作用,因此该字段将填充IP地址。如果我在服务器上使用nslookup,则反转工作正常。 有什么提示可以告诉我从哪里开始吗? 非常感谢。

您需要让它工作起来。或者,如果只在一个点上需要反向查找,则可以使用进行反向查找

对每个请求进行反向查找都会对性能产生严重影响,这就是为什么默认情况下不启用反向查找的原因。如果可以的话,我建议您选择
Dns.GetHostEntry
路线

下面是我们使用的一种有用的反向查找方法:

public static string ReverseLookup(string ip)
{
    if (string.IsNullOrEmpty(ip)) return ip;

     try 
     {
       return Dns.GetHostEntry(ip).Select(entry => entry.HostName).FirstOrDefault() ?? ip;
     } 
     catch(SocketException) { return ip; }
}

Page.Request.ServerVariables[“HTTP_HOST”].ToUpper()


您可以使用此链接在负载平衡的应用程序上获取主机名。

Hello@HackedByChinese,非常感谢您的链接,这正是正确的选择。为了进行测试,我启用了IIS的反向查找,但我将修改应用程序以使用Dns.GetHostEntry。您的代码看起来很好,如果ip为空或为空,我只需添加一个“抛出ArgumentException”。再次感谢:-)