是否有可能阻止普通用户通过Windows资源pipe理器访问C盘? 他们应该被允许执行某些程序。 这是为了确保员工不能窃取或复制专有软件,即使他们应该能够执行它。
一种方法是在Windows组策略中更改选项,并将“shell”设置为“explorer.exe”以外的其他项。 我正在寻找一个类似的窗口设置,只是隐藏C驱动器或以其他方式防止微不足道的访问。
这是Windows XP / 7。
那么,如果他们不能读取它所在的驱动器,他们如何运行该程序呢?
总之 – 你不能这样做,你问。 对于有人执行一个程序,他们必须有凭据才能够读取它。 你能想象如果你真的明确拒绝用户访问C:\驱动器还有什么会打破? 他们甚至不能login。
您需要一个复制保护或DRM解决scheme,就像很多游戏一样。 或者某种身份validation服务器,以便程序只能在联系公司networking上的许可证服务器时运行。 我知道这里面有商业解决scheme。
或者,您可以提供这样的程序,使用户从不在自己的PC上运行它 – 托pipe的Web应用程序,没有映射驱动器的terminal服务等等。并不是所有的应用程序都能以这种方式有效地运行。
编辑 – 另外,为什么你关心他们反编译? 你不是在应用程序内保存敏感的凭据吗? 对于几乎所有的事情来说,完成任务是一个不好的方法。 例如,如果您必须更改密码,现在您必须重新编译和重新分配整个程序。
如果是数据库访问,则可以分发一个保存有密码的ODBC连接,这样程序就不需要硬编码了。
额外的编辑 – 你上个月在StackOverflow上已经提出了这个问题,并得到了同样的好的答案,我刚刚给你。 你不能这么做,因为如果有人看不懂,就不能运行它。 有软件解决scheme,有人提到Nalpeiron作为一个许可证服务器,这与我上面的答案相匹配。 有人提到分裂的业务逻辑,以便敏感的部分在服务器上运行 – 你说应用程序已经开发。 所以你可以在TS上托pipe它,而不是让用户映射驱动器,所以他们不能从桌面上读取二进制文件。 就是这样。
那么,如果你想允许执行,他们必须能够读取磁盘的内容=>他们可以复制它。
你提出的只是不会工作。 如果你看看这个问题在Stackoverflow,特别是这个答案,你会发现进一步阅读如何去保护你的.NET应用程序。