获取客户端计算机名称和ID-ASP.NET Core 3.1

时间:2020-08-27 08:52:54

标签: asp.net-core httpcontext

当客户端使用我的SSO Web .net核心应用程序时,我需要获取客户端的计算机名称和ID。

我的第一个解决方案是使用机器名称:

var machName = Environment.MachineName;

这是机器ID:

foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
{
    // consider ethernet interfaces
    if(nic.NetworkInterfaceType == NetworkInterfaceType.Ethernet && nic.OperationalStatus == OperationalStatus.Up)
    {
        return Ok(nic.GetPhysicalAddress().ToString());
    }
}

然后我突然意识到,它们是从服务器中获取名称和ID的,就像在我的计算机中一样。

我目前正在调试request信息,包括header信息,但是在header中看不到任何与名称和ID相关的信息。我可以从HttpContext获取请求IP和用户代理,这是我需要的,但不是名称和ID。

1 个答案:

答案 0 :(得分:1)

据我所知,实际上不可能获得客户端计算机名称,而主机名不是客户端计算机名称。

客户端会将请求发送到服务器,因此我们只能通过请求获取参数。

该请求包含以下内容:

请求IP地址(TCP / IP)

HTTP标头

仅此而已。 IP地址是您的Internet提供商提供的IP,主机名是Internet流量通过的某些提供商计算机的名称。

通常无法从请求IP获得真实的客户端计算机名称。在HTTP标头中,浏览器也不传递计算机名称。

相关问题