我有一些驻留在asp.net应用程序中的代码, 它使用System.Management.ManagementClass来查询各种 有关当前硬件的详细信息。
我们看看cpu,基板和bios细节并使用它们 各种各样的东西,即识别
现在正在与核心clr& asp.net 5 我们需要开始移植我们的代码。
接下来的问题是如何实现这一点,因为上面提到的课程不存在(来自我的搜索)。更具体地说,我们正在寻找一种现在可以跨平台工作的方法,它基于硬件,并为我们提供了一种基于当前硬件生成密钥的方法。因此,只有在设备上更换硬件时,此密钥才会发生变化。
答案 0 :(得分:0)
命名空间System.Management
可能永远不会移植到.NET Core,尤其不是跨平台。 System.Management
是WMI的包装器,它同样是一个非常依赖于Windows平台的Windows库。据我所知,.NET Core目前没有任何基于硬件的ID。
如何跨平台实现:构建一个NuGet包,它承载同一合同的两个实现。 net451上的一个basewd利用你现有的WMI代码,另一个使用Linux方法读取一些序列号。在那里做一些研究。 / proc文件系统应该有一些,但你也可以P / Invoke到一些linux库。