Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何为单个用户制作桌面应用程序?_C#_.net_Winforms - Fatal编程技术网

C# 如何为单个用户制作桌面应用程序?

C# 如何为单个用户制作桌面应用程序?,c#,.net,winforms,C#,.net,Winforms,我已经为一个组织创建了一个软件。但也存在软件盗版的威胁。我想只在一台计算机上保存(安装)这个。根据我的感觉,我会的 正在创建web服务,该服务将在安装时调用,并将收集系统信息,如果数据库中已经存在,则将限制进一步处理。这是我的假设和想法,我会通过,是否有其他方法来实现这一点,或者是否有内置的功能来克服这一点 任何反应都是可感知的 谢谢使用Web服务是一个不错的选择。但要使其工作,您必须确保在调用该软件时始终将其连接到internet 还有其他脱机选项可用。这是其中几个的链接 它们是保护执行的

我已经为一个组织创建了一个软件。但也存在软件盗版的威胁。我想只在一台计算机上保存(安装)这个。根据我的感觉,我会的 正在创建web服务,该服务将在安装时调用,并将收集系统信息,如果数据库中已经存在,则将限制进一步处理。这是我的假设和想法,我会通过,是否有其他方法来实现这一点,或者是否有内置的功能来克服这一点

任何反应都是可感知的


谢谢

使用Web服务是一个不错的选择。但要使其工作,您必须确保在调用该软件时始终将其连接到internet

还有其他脱机选项可用。这是其中几个的链接

它们是保护执行的钥匙,除非钥匙插入机器


还有一些选项可用,例如检测硬盘序列号或从mac地址识别机器,但它们并不完全安全。还有其他问题,如硬件的更改将导致软件停止工作。

实现这一点的最佳方法是在当前用户的注册表中创建一个键

执行此操作的示例代码如下:

Microsoft.Win32.RegistryKey key;
key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey("Names");
key.SetValue("Name", "Isabella");
key.Close();

另外,您应该加密您的密钥值,否则很容易被黑客攻击。

在任何机器上都可以轻松创建新密钥。这绝对不是一个安全的选项。他可以创建一个加密密钥,并在应用程序级别对其进行解密,我将编辑我的答案。无论如何,它都会成为一个静态绑定。我破解了几个这样的软件,只是为了试验安全性。此外,使用web服务也不是一个好的选择,因为它也很容易被欺骗。您花费的时间越多,使您的合法客户难以使用您的软件,您花费在客户认为有价值的功能上的时间就越少,他们越有可能寻找你的软件的非法副本,而这些副本没有你决定强加的任意限制。永远不要将你的软件卖给你希望从你那里盗版的客户……无论这里有人告诉你什么,总会有办法绕过你自己的自定义DRM或商业提供的DRM。此外,如果你的网站宕机怎么办?或者你不再运行它了?你的软件停止工作了吗?我才不信呢,我想把锁系统放在我的安装文件里。这将阻止安装软件。您可以使用inno安装程序,它是一个可配置的安装程序创建者,还允许您编写pascal脚本来编写安装保护逻辑。我已经这样做了很长一段时间了。另一种选择是使用提供相同功能的nullsoft安装程序。