在没有代码签名的情况下从文件共享运行.NET应用程序

时间:2009-05-02 22:12:22

标签: c# .net vb.net security clr

每当从文件共享运行.NET exe时,.NET安全模型都会抛出安全性错误。从本地驱动器运行时不会出现该错误。有没有人知道解决这个问题的方法,而不需要签署代码?

7 个答案:

答案 0 :(得分:4)

答案 1 :(得分:2)

使用caspol.exe为该文件共享分配足够的权限来运行您的程序。

答案 2 :(得分:2)

您可能能够针对.net 3.5 sp1构建应用程序,此版本正在删除此安全设置。

答案 3 :(得分:1)

为了解决这个问题,我们最终将.exe包装在一个批处理文件中。批处理文件将.exe复制到本地驱动器并从那里运行它。我确信有一种不那么黑的方式!

答案 4 :(得分:1)

确保在运行该软件的计算机上安装.Net 3.5SP1。此版本删除了从文件共享运行的应用程序的安全限制。它允许它们以完全信任的方式运行,而之前的模型将它们置于受限制的环境中。

这是Vance关于该主题的博客文章的链接

答案 5 :(得分:0)

您可以使用.Net配置向导来放松特定程序集及其位置的安全性,而这又可以通过组策略进行部署。你也可以像前面提到的那样使用caspol。

另一种选择是使用代码访问安全性。有一篇精彩的MSDN文章here对此进行了解释。

第三种方法是使用clickonce部署,但是这仍然会在执行时创建程序集的本地实例。

答案 6 :(得分:0)

您可以使用Click Once deployment从文件共享部署应用程序。