我是c#的新手,所以如果我问一些入门级问题,请原谅我。
目前,我有一个小窗口,上面有取消按钮。我注意到当我在本地机器上运行时,取消按钮工作正常。但是当从xp机器上的网络位置运行时,它给了我安全性异常。 异常告诉我,我不能调用非托管代码等.... 但我的表单只有一个按钮,eventhandler中的代码是:Application.Exit();
在谷歌搜索后,我发现我可以通过mscorcfg.msc进行更改,以获得Intranet的许可。这对我有用。我找到的其他解决方法是http://msdn.microsoft.com/en-us/library/aa288469(v=vs.71).aspx
然而,这只是一台机器的解决方法,如果我有一百台机器怎么办?
所以我认为必须有其他方法来处理这个问题,有人可以帮忙吗?
答案 0 :(得分:2)
这是.NET框架本身的一个特性:代码访问安全性。
默认情况下,网络共享上的代码将使用LocalIntranet的安全级别运行,该级别的权限级别低于在“安全”位置的本地驱动器上运行的权限级别。
您可以使用工具caspool摆脱此限制,并为网络位置上的可执行文件执行信任执行,例如:
caspol -machine -addfulltrust program.exe
答案 1 :(得分:2)
更新到更新版本的框架。如果您运行.Net 3.5 sp1或更高版本,.Net不再对网络共享强制执行此操作。