Microsoft App-V and Hardware IDs

本文关键字:IDs Hardware and App-V Microsoft | 更新日期: 2023-09-27 18:27:54

我目前正在开发一个用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;
}

Microsoft App-V and Hardware IDs

App-V的维基百科文章中限制部分的最后一个项目符号正好适合您的问题

  • 许可策略:许可强制与机器绑定的应用程序,例如许可与系统的MAC地址或硬盘序列号绑定。如果用户无法在首次启动已排序的应用程序时手动或通过脚本进行激活,则不应对此类应用程序进行排序

如果你在每次运行应用程序时验证许可证,而不是在应用程序安装时只验证一次,你需要告诉客户你不能支持App-V。如果这意味着你将失去一位有价值的客户,那么迅速取消这个计划,这是我们无法为你做出的商业决定。