2012-06-23 39 views
2

我已经完成了使用安装项目部署它的c#应用程序。安装应用程序时,它会在“程序文件”(或任何用户选择的文件夹)中创建文件和文件夹。C#应用程序部署,安全性,复制保护?

问题是关于这个应用程序的安全性。如果有人复制安装的文件夹,然后在他的机器上运行该应用程序,它运行良好。应用程序只能在使用安装文件安装到PC上的情况下运行。但即使将安装的文件复制到新的PC上,然后运行“exe”,应用程序也会执行。

我想防止这种情况发生。任何有关这个问题的帮助将非常感激。 我知道有很多方法可以实现这一点,请指出几点。

+2

进一步解释为什么你想要求用户运行安装程序?为什么更安全/保护? –

+0

是否有以下任何信息对您有用?如果是这样,那么你可能想要upvote,或接受一个可用的答案。 –

回答

2

好的。仔细听!

当您使用安装项目进行安装时,在裁剪动作中添加一个程序集,它将在注册表中创建注册表项。

并包含项目代码中用于检查注册表的初始行,如果它发现注册,它会继续操作,如果没有,它将显示一条错误消息,请安装该应用程序。这肯定会工作;。

+2

虽然不是万无一失,因为有人可以导出/导入注册表项。除非入口对某个特定的机器进行散列。 –

+0

这不起作用,可以轻松导出注册表项。 –

+0

我知道这不是万无一失......但客户对这种安全级别感到满意。我仍然试图让应用程序更安全。 – Sunny

0

运行安装程序已经在注册表中留下了一个密钥,就像所有其他应用程序一样。没有必要创建额外的密钥。

遍历已安装的应用程序查找您的应用程序,如果不存在,通知用户运行安装程序。

你应该这样做看看注册表信息。这里有一个很好的实现,如果没有安装,将返回,刚装的用户,或者给大家:

http://mdb-blog.blogspot.com.ar/2010/12/c-check-if-app-is-installed-for-all.html

注意:这不是实现复制保护的方式,它只是验证您的设置过程是相应运行的。

0

您可能想要机器锁定您的应用程序,以便它只运行一台特定的机器。这通常通过使用机器锁定或激活的许可证来实现。

看看CryptoLicensing它提供了这个功能。

免责声明:我为CryptoLicensing的开发商LogicNP Software工作。

相关问题