很想知道为什么当我限制分配给程序集的权限时,我的2.0应用程序被允许执行。为什么CASPol允许我的.NET应用程序运行?
我在企业级创建了一个新的代码组,它将匹配具有特定数字签名的任何程序集。代码组已设置为只使用来自相关权限集的权限,并且不会评估较低的策略级别。
运行.NET 2.0 PermCalc指出我的应用程序需要以下权限:
- UnmanagedCode,
- 环境
- FileIO专注
- 注册
- 反思
我已分配给我的自定义代码组非托管代码的许可,但没有别的。
我的应用程序中的第一种方法要求提前获得上述所有权限,以便在退出之前向用户显示合理的消息。
运行.NET 2.0配置我的程序集上的“评估程序集”工具确实表明我的应用程序只能获得UnmanagedCode权限。
但是,当我执行我的应用程序正在运行并完成时,显然要做各种FileIO和注册表操作。
我的应用程序使用应与限制代码组匹配的数字签名进行签名。
任何人都可以解释为什么这个工程。
注意:我的最终目的是确保我的应用程序不会在网络共享中执行时发生可怕的崩溃。我希望检查汇编证据区域是My_Computer,但我不能再用.NET 3.5 SP1来做这件事。见FullTrust On the LocalIntranet
在此先感谢您的任何帮助/建议。
嗨尼科尔,谢谢你的回应。我意识到我在误导我的问题上犯了一个错误。我的应用程序实际上是一个.Net 2.0应用程序(不应具有3.5的先决条件)。但我确实安装了3.5 SP1 Framework。我需要进行检查,因为用户可能只安装了.NET 2.0,但仍尝试从网络共享执行。在这种情况下,该应用程序只是崩溃,我希望它更优雅。上面概述的情况是一种测试情况,我期望我的应用程序崩溃......但它不是! –
我现在仔细检查一下32/64位的clr。 –
啊......现在更有意义了。我已经编辑了我的答案,在规定的条件下为需求通过添加另一个可能的解释。 –