我一直在审查this post有关使用C#创建唯一机器ID的信息。我需要类似的内容,但是唯一性只需要持续一个Windows会话,而无需通过重新启动。换句话说,我只需要生成特定机器所特有的东西,C#应用程序就可以将它作为握手的一部分传递给我的Web服务器,以开始与Web服务器的新会话。一旦我的程序关闭,Web服务器将丢弃唯一的ID,并且用户可以从任何其他计算机上开始新的会话。我可以使用C#获得机器的任何特征(例如Mac地址,IP地址,ProcessorID,硬件序列号),如果不重新启动就无法更改该特征?我知道DeviceID nuget package,但是我需要没有第三方软件包,因为我是在另一个软件供应商sdk中编写的。
这是我无需任何第三方库即可用于获取Mac地址的代码示例:
string addr = "";
foreach (NetworkInterface n in NetworkInterface.GetAllNetworkInterfaces()) {
if (n.OperationalStatus == OperationalStatus.Up) {
addr += "*" + n.GetPhysicalAddress().ToString();
break;
}
}
Print(addr);
用户可以在不重新启动的情况下更改此结果吗?或者在任何情况下如果不先重新启动就可以更改此结果?同样,对于我来说,唯一性只需要持续一个Windows会话即可。