我有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">
答案 0 :(得分:6)
使用HttpRequest.UserHostAddress
和HttpRequest.UserHostName
作为客户端IP和计算机名称。
假设您已正确配置身份验证,您可以从IIdentity.Name
获取客户端用户。
在Page
的上下文中,您可以使用Request.UserHostAddress
,Request.UserHostName
和User.Identity.Name
。
答案 1 :(得分:0)
我用它来显示我的Intranet上的客户端语言环境机器(使用System.Net):
Dns.GetHostEntry(Request.UserHostAddress).HostName.ToString()