从其http请求获取有关用户的信息

Any*_*are 4 .net c# asp.net httpwebrequest httprequest

问:

我想询问如何获取计算机名称和进入我的网站的用户的帐户名称.根据http request他的要求.

当我搜索我发现:

  • REMOTE_HOST

    发出请求的主机的名称.如果服务器没有此信息,它将设置REMOTE_ADDR并将其保留为空.

    为什么服务器可能永远不会包含主机名?我该如何解决这个问题?

  • 我用REMOTE_USER,LOGON_USER, AUTH_USER来获取帐户名,但它不包含任何数据也

.

san*_*ngh 5

您可以像使用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"] 
Run Code Online (Sandbox Code Playgroud)

编辑

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

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

    Response.Write(computer_name);
Run Code Online (Sandbox Code Playgroud)

编辑二

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

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();
Run Code Online (Sandbox Code Playgroud)

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

IIS服务器变量