我即将为我的应用程序实现一个非常基本的许可证功能。可以按照每台机器(或每个操作系统)或每个用户(如Windows Server中的CAL:如果我的应用程序在一台机器上由多个用户使用,或者它在多台机器上由一个用户使用)授予序列号。
For per-operating-system licensing, I use SerialNumber of Win32_OperatingSystem.
For per-user licensing, I use:
WindowsIdentity currentIdentity = WindowsIdentity.GetCurrent(); if (currentIdentity != null) { SecurityIdentifier userSid = currentIdentity.User.AccountDomainSid; Console.WriteLine(userSid); }
然后将获得的操作系统序列号或SID的哈希值存储在数据库中,与应用程序序列号关联;每次程序启动时,它会查询服务器,发送操作系统SN / SID和应用程序序列号的哈希值。
这样做是正确的吗?还是完全错误的?它能在每台Windows机器上工作吗?(例如,使用主板序列号是错误的)