我有IP地址,但是由于某种原因,我可以正确解析名称以显示本地计算机名称。我尝试了几件事,所有这些都显示了服务器的主机名?

    ipadd = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
    IPAddress myIP = IPAddress.Parse(ipadd);
    IPHostEntry GetIPHost = Dns.GetHostEntry(myIP);


    //userhostname = System.Environment.MachineName;
    //userhostname = Dns.GetHostName(); //Resolve ServerHostName not computer
    //userhostname = HttpContext.Current.Request.UserHostName;
    //userhostname = HttpContext.Current.Request.UserAgent;
    userhostname = GetIPHost.HostName;


对于用户名,我想使用

nametext = WindowsIdentity.GetCurrent().Name;
//Shows server name when deployed on server
//when debuging and running localy shows correctly current user logged in

//nametext = HttpContext.Current.Request.ServerVariables["LOGON_USER"];
// not returning anything


我切换了身份验证,但没有结果

<authentication mode="Forms">
<authentication mode="Windows">

最佳答案

使用HttpRequest.UserHostAddressHttpRequest.UserHostName作为客户端IP和计算机名称。

假设已正确配置身份验证,则可以从IIdentity.Name获取客户端用户。

Page的上下文中,可以使用Request.UserHostAddressRequest.UserHostNameUser.Identity.Name

09-28 14:42