gpt4 book ai didi

c# - .NET 应用程序每机器/每用户许可

转载 作者:太空狗 更新时间:2023-10-29 17:57:46 25 4
gpt4 key购买 nike

我即将为我的应用程序实现一个非常基本的许可功能。序列号可以按机器(或按操作系统)或按用户(如 Windows Server 中的 CAL:如果我的应用程序由一台机器上的多个用户使用,或者如果它由一个用户在多台机器上使用机)。

  1. 对于每个操作系统的许可,我使用 Win32_OperatingSystemSerialNumber .

  2. 对于按用户许可,我使用:

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

然后将获得的操作系统序列号或 SID 的哈希值存储在数据库中,并与应用程序序列号相关联;每次程序启动时,它都会查询服务器,发送操作系统 SN/SID 和应用程序序列号的哈希值。

这样做是正确的还是完全错误的?它能在每台 Windows 机器上运行吗? (例如,using motherboard serial is wrong)

最佳答案

我认为您的方法没有任何问题,因为我已经看到在工作中使用了类似的方法 - 但是我们使用操作系统 S/N 和硬件 ID 的组合来获得机器许可。我们的应用没有按用户许可,因此我无法就此提供建议。

请注意,您不应假定 WMI 返回的值采用任何特定格式(Win32_OperatingSystem 应该没问题,硬件 ID 并不总是正确)

我遇到过错误,在这些错误中,接受硬件 ID 的代码采用特定格式,并且没有考虑非字母数字字符(例如逗号和空格)的存在。

关于c# - .NET 应用程序每机器/每用户许可,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2725968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com