Ars*_*nko 9 c# wmi licensing piracy serial-number
我即将为我的应用程序实现一个非常基本的许可功能.每台计算机(或每个操作系统)或每个用户可以授予序列号(对于Windows Server中的CAL:如果我的应用程序由一台计算机上的多个用户使用,或者一个用户使用多个用户)机).
对于每个操作系统许可,我用的SerialNumber的Win32_OperatingSystem.
对于每用户许可,我使用:
WindowsIdentity currentIdentity = WindowsIdentity.GetCurrent();
if (currentIdentity != null)
{
SecurityIdentifier userSid = currentIdentity.User.AccountDomainSid;
Console.WriteLine(userSid);
}
Run Code Online (Sandbox Code Playgroud)然后将获得的OS序列号或SID的散列存储在数据库中,与应用程序序列相关联; 每次程序启动时,它都会查询服务器,发送OS SN/SID和应用程序序列的散列.
这样做是对的,还是完全错的?它会在每台Windows机器上运行吗?(例如,使用主板串口是错误的)
我不认为你的方法有任何问题,因为我在工作中看到过类似的方法 - 但是我们使用操作系统 S/N 和硬件 ID 的组合来进行机器许可。我们的应用程序没有每用户许可,因此我无法就此提供建议。
请注意,您不应假设 WMI 返回的值采用任何特定格式(Win32_OperatingSystem应该没问题,硬件 ID 并不总是没问题)
我遇到过一些错误,其中接受硬件 ID 的代码采用特定格式,并且没有考虑非字母数字字符(例如逗号和空格)的存在。