我继承了一个解决方案,该解决方案包含一个类库,该类库的方法以:
[PermissionSet(SecurityAction.Assert, Name = "FullTrust")]该属性显然是必需的,因为如果我注释掉该属性,则该方法抛出以下异常:
'System.Security.Permissions.FileIOPermission,System.Security.SecurityException:请求
mscorlib、Version=4.0.0.0、Culture=neutral、PublicKeyToken=b77a5c561934e089‘类型的许可失败。
据我所见,引用此程序集的可执行文件正在完全信任地运行,因为当我查看可执行文件的app.manifest时,我可以看到:
<requestedExecutionLevel level="asInvoker" uiAccess="false" />当我以管理员身份运行Visual时,我会假设命中调试也会在Administrator模式下运行可执行文件,因此它应该具有完全的权限(尽管我可能完全误解了这一点)。
库的AssemblyInfo似乎没有什么有趣的关于安全限制的内容。
所以我不明白为什么这个库一开始运行在一个较低的信任级别上。有人能告诉我所有可能的地方,我应该看看这个限制性的安全策略是在哪里设置的吗?
(值得注意的是,这个项目是在.net 3.5下设计的,但我的工作是将其升级到4.0上(它现在正在运行)。据我所知,在最新版本中,安全模型发生了重大变化。)
发布于 2011-03-03 01:22:54
好的找到答案了。安全限制在加载程序集的AppDomain上。我最初以为程序集是静态调用的,但结果是它在运行时被加载到一个新的AppDomain中。
https://stackoverflow.com/questions/5164402
复制相似问题