.net PermissionSet-其中是程序集';设置了哪些安全限制?

.net PermissionSet-其中是程序集';设置了哪些安全限制?,.net,security,.net-4.0,.net,Security,.net 4.0,我继承了一个解决方案,该解决方案包含一个类库,该类库的一个方法修饰为: [PermissionSet(SecurityAction.Assert, Name = "FullTrust")] 该属性显然是必需的,因为如果我注释掉该属性,那么该方法将抛出以下异常: System.Security.SecurityException: 请求类型的权限 'System.Security.Permissions.FileIOPermission, mscorlib,版本=4.0.0.0, 文化=中立,

我继承了一个解决方案,该解决方案包含一个类库,该类库的一个方法修饰为:

[PermissionSet(SecurityAction.Assert, Name = "FullTrust")]
该属性显然是必需的,因为如果我注释掉该属性,那么该方法将抛出以下异常:

System.Security.SecurityException: 请求类型的权限 'System.Security.Permissions.FileIOPermission, mscorlib,版本=4.0.0.0, 文化=中立, PublicKeyToken=b77a5c561934e089' 失败了

就我所见,引用此程序集的可执行文件正在完全信任中运行,因为当我查看可执行文件的app.manifest时,我可以看到:

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

当我以管理员身份运行VisualStudio时,我会假设点击调试也会以管理员模式运行可执行文件,因此它应该具有完全权限(尽管我可能完全误解了这一点)

该库的AssemblyInfo似乎没有任何关于安全限制的有趣内容

所以我不明白为什么这个库一开始就运行在较低的信任级别上。有人能告诉我所有可能的地方,我应该看看这个限制性的安全策略是在哪里设置的吗


(可能值得注意的是,此项目是在.net 3.5下设计的,但我的工作是将其升级到4.0上(它现在在4.0上运行)。我知道安全模型在最新版本中发生了重大变化。)

OK找到了答案。安全限制在加载程序集的AppDomain上。我原本以为程序集是静态调用的,但结果证明它是在运行时加载到新的AppDomain中的