我目前正在研究用 C# .NET 4.5 编写的软件解决方案。该软件使用基于硬件 ID(例如 MAC 地址或 CPU ID)的许可系统。一位用户现在报告说,在将软件与 Microsoft App-V 一起使用时,他遇到了许可问题。他提到每次新用户想要使用该软件时,应用程序都会抱怨许可证无效(由于硬件更改)。如果以前注册的用户在不同的客户端上使用本软件,也会发生这种情况。我现在的问题是,当通过 App-V 运行应用程序时,以下代码片段返回什么,客户端的 Mac 地址或应用程序实际运行的服务器的地址。如果第一个是真的,有没有办法从服务器获取相同的信息,使用 .NET 中的某些功能?
private static string getMAC() {
ManagementClass oMClass = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection MOCol = oMClass.GetInstances();
string mac = "";
foreach (ManagementObject MO in MOCol) {
if (MO != null) {
if (MO["MacAddress"] != null) {
mac = MO["MacAddress"].ToString().Replace(":", "");
if (mac != string.Empty) {
break;
}
}
}
return mac;
}