2

我目前正在研究用 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;
}
4

1 回答 1

4

App-V 的 Wikipedia 文章中“限制”部分的倒数第二个项目符号正好适合您的问题:

  • 许可政策:与机器相关的许可强制执行的应用程序,例如,许可证与系统的 MAC 地址或硬盘序列号相关联。如果用户在第一次启动已排序的应用程序时(手动或通过脚本)无法完成激活,则不应对此类应用程序进行排序。

如果您在应用程序的每次单独运行而不是在应用程序安装时仅验证一次许可证,您需要告诉您的客户您不能支持 App-V。如果这意味着您将失去一位有价值的客户,那么请尽快摆脱这个计划,这是我们无法为您做出的商业决策。

于 2014-10-30T12:54:02.467 回答