我有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.UserHostAddress
和HttpRequest.UserHostName
作为客户端IP和计算机名称。
假设已正确配置身份验证,则可以从IIdentity.Name
获取客户端用户。
在Page
的上下文中,可以使用Request.UserHostAddress
,Request.UserHostName
和User.Identity.Name
。