从用户的 HTTP 请求中获取有关用户的信息

本文关键字:用户 信息 获取 请求 HTTP | 更新日期: 2023-09-27 17:55:15

Q:

我想询问如何获取对我的网站进行http request的用户的计算机名称和帐户名。根据他的请求。

当我搜索时,我发现:

  • REMOTE_HOST

    正在创建的主机的名称请求。如果服务器没有有了这些信息,它将设置REMOTE_ADDR并将其留空。

    为什么服务器可能永远不会包含主机名? 我该如何修复这?

  • 我使用REMOTE_USERLOGON_USER, 获取帐户名称AUTH_USER但它也不包含任何数据

.

从用户的 HTTP 请求中获取有关用户的信息

您可以使用 Request.ServerVariables 对象,例如

// will return the host name making the request
    string s = Request.ServerVariables["REMOTE_HOST"] 

    // will return the computer name
    string s = Request.ServerVariables["SERVER_NAME"] 

编辑

如果您想获取计算机名称,请尝试以下

string computer_name = System.Net.Dns.GetHostEntry(Request.ServerVariables["remote_addr"]).HostName;
    Response.Write(computer_name);

编辑二

检索客户端计算机详细信息

System.Net.IPAddress[] strClientIPAddress = System.Net.Dns.GetHostAddresses(Environment.MachineName);
string strClientMachineName = Environment.MachineName.ToString().Trim();
string strClientUserName = Environment.UserName.ToString().Trim();
string strClientDomainName = Environment.UserDomainName.ToString().Trim();
string strClientOSVersion = Environment.OSVersion.ToString().Trim();

有关更多服务器变量,请查看以下链接

IIS 服务器变量

试试这个

System.Web.HttpContext.Current.Request.UserHostName;
System.Web.HttpContext.Current.Request.UserHostAddress;