我有一个用C#编写的应用程序,它位于网络共享上.当我从本地驱动器运行它时,一切正常.当我从远程共享启动它时,调用如
try { System.Reflection.Assembly.GetExecutingAssembly(); System.IO.Directory.GetCurrentDirectory(); }
抛出SecurityException'请求失败'.
是什么导致这种情况,本地启动的应用程序和从远程位置启动的应用程序之间有什么区别?
这是由于CAS ; 从本地计算机启动的代码比内联网中的代码具有更多的信任,这反过来又更加信任来自Internet的代码.
IIRC,使用最新的SP(3.5SP1?),如果你已经映射了共享(即F :)它是值得信任的; 否则你需要:
a:对所有客户应用caspol更改(是的)
b:使用ClickOnce部署应用程序,然后运行.application(耶!)
关键是ClickOnce允许您签署应用程序并声明您的安全策略(即使您要求完全信任).