Приложение.NET per-machine/per-user лицензирование

Я собираюсь реализовать очень простую опцию лицензирования для своего приложения. Порядковый номер можно предоставить на машину (или на операционную систему) или в расчете на пользователя (что касается CAL в Windows Server: если мое приложение используется несколькими пользователями на одной машине или если это используется одним пользователем на нескольких машинах).

  1. Для лицензирования на операционную систему я использую SerialNumber Win32_OperatingSystem.

  2. Для лицензирования в расчете на пользователя я использую:

    WindowsIdentity currentIdentity = WindowsIdentity.GetCurrent();
    if (currentIdentity != null)
    {
        SecurityIdentifier userSid = currentIdentity.User.AccountDomainSid;
        Console.WriteLine(userSid);
    }
    

Хеш полученного порядкового номера ОС или SID затем хранится в базе данных, связанной с последовательным приложением; каждый раз, когда программа запускается, она запрашивает сервер, отправляя хеш ОС SN/SID и последовательное приложение.

Действительно ли это - правильный поступок это или является этим полностью неправильно? Это будет работать над каждой машиной Windows? (Например, использование последовательной материнской платы является неправильным),

9
задан Community 23 May 2017 в 12:07
поделиться

1 ответ

Я не вижу ничего плохого в вашем подходе, поскольку я видел, что аналогичный подход используется на работе - однако мы используем комбинацию серийного номера ОС и идентификаторов оборудования для лицензирования машин. В наших приложениях нет лицензирования на каждого пользователя, поэтому я не могу ничего посоветовать по этому поводу.

Обратите внимание, что вы не должны предполагать, что значения, возвращаемые WMI, имеют какой-либо конкретный формат ( Win32_OperatingSystem должно быть в порядке, идентификаторы оборудования не всегда в порядке)

Я обнаружил ошибки, когда код, принимающий идентификаторы оборудования, принимает определенный формат и не учитывает наличие не буквенно-цифровых символов, таких как запятые и пробелы.

3
ответ дан 5 December 2019 в 01:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: