我正在开发激活Web应用程序的许可密钥。它可以部署在物理服务器、虚拟服务器、共享托管服务器和(Azure云托管)原生云服务器上。本产品一次发给一个用户。
我创建了window应用程序,它连接硬件、指纹、当前服务器,并为Web应用程序创建许可密钥。哪个存储硬件指纹,许可证的时间段关键问题。这在物理服务器中是很好的。不会改变的。
这是检测硬件打印 链接的代码
现在的问题是,我不能将这种方法用于虚拟服务器和(Azure云托管)本地云服务器。
现在我想让
通过使用这四个,我创建了Product。但我仍然不知道这是因为组件是好的,创造独特的许可证钥匙。
我发现了的一些局限性
我只需要知道我可以使用哪个组件来创建密钥。或者,当硬件组件在云和虚拟服务器上发生变化时,我可以使用什么策略。
发布于 2016-03-19 07:31:16
每个系统都有唯一的BIOS UUID。在所有VM和系统中都是唯一的。下面的方法是如何在虚拟pc public static bool detectVPC() { using (var searcher = new System.Management.ManagementObjectSearcher("Select * from Win32_ComputerSystem")) { using (var items = searcher.Get()) { foreach (var item in items) { string manufacturer = item["Manufacturer"].ToString().ToLower(); if ((manufacturer == "microsoft corporation" && item["Model"].ToString().ToUpperInvariant().Contains("VIRTUAL")) || manufacturer.Contains("vmware") || item["Model"].ToString() == "VirtualBox") { return true; } } } } return false; }
中检测系统的运行情况。
检测UUID的代码:
public static string UUID
{
get
{
string uuid = string.Empty;
ManagementClass mc = new ManagementClass("Win32_ComputerSystemProduct");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
uuid = mo.Properties["UUID"].Value.ToString();
break;
}
return uuid;
}
}
解决了我的问题。我测试了这段代码
我在蔚蓝云中测试了这段代码并共享了托管服务器。
https://stackoverflow.com/questions/35893414
复制相似问题